<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.15"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Library Evolutionary Algorithms for Clustering (LEAC): clusteringop Namespace Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="leac_logo.png"/></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Library Evolutionary Algorithms for Clustering (LEAC)
   &#160;<span id="projectnumber">Version 1.0</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.15 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',false,false,'search.php','Search');
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">clusteringop Namespace Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Clustering operators.  
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ab64951784015cb55d4b8a32993255713"><td class="memTemplParams" colspan="2">template&lt;typename T_CENTROIDS , typename T_FEATURE_SUM , typename T_INSTANCES_CLUSTER_K , typename T_CLUSTERIDX &gt; </td></tr>
<tr class="memitem:ab64951784015cb55d4b8a32993255713"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceclusteringop.html#ab64951784015cb55d4b8a32993255713">meanCentroids</a> (T_CLUSTERIDX &amp;aocidx_numClusterNull, <a class="el" href="classmat_1_1_matrix_base.html">mat::MatrixBase</a>&lt; T_CENTROIDS &gt; &amp;aomatrixt_meanCentroids, <a class="el" href="classmat_1_1_matrix_base.html">mat::MatrixBase</a>&lt; T_FEATURE_SUM &gt; &amp;aimatrixtrowt_sumInstancesClusterK, std::vector&lt; T_INSTANCES_CLUSTER_K &gt; &amp;aovectort_numInstClusterK)</td></tr>
<tr class="separator:ab64951784015cb55d4b8a32993255713"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a44a4fb40b11fb73247f3efad50d19183"><td class="memTemplParams" colspan="2">template&lt;typename T_FEATURE , typename INPUT_ITERATOR_IDX , typename INPUT_ITERATOR &gt; </td></tr>
<tr class="memitem:a44a4fb40b11fb73247f3efad50d19183"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceclusteringop.html#a44a4fb40b11fb73247f3efad50d19183">initialize</a> (<a class="el" href="classmat_1_1_matrix_base.html">mat::MatrixBase</a>&lt; T_FEATURE &gt; &amp;aomatrixt_centroids, const INPUT_ITERATOR aiiterator_instfirst, INPUT_ITERATOR_IDX aiiterator_idxInstanceRandFirst)</td></tr>
<tr class="separator:a44a4fb40b11fb73247f3efad50d19183"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaf9c618adece3370f1da1abe8d9ce36e"><td class="memTemplParams" colspan="2">template&lt;typename T_FEATURE , typename INPUT_ITERATOR &gt; </td></tr>
<tr class="memitem:aaf9c618adece3370f1da1abe8d9ce36e"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceclusteringop.html#aaf9c618adece3370f1da1abe8d9ce36e">randomInitialize</a> (<a class="el" href="classmat_1_1_matrix_base.html">mat::MatrixBase</a>&lt; T_FEATURE &gt; &amp;aomatrixt_centroids, const INPUT_ITERATOR aiiterator_instfirst, const INPUT_ITERATOR aiiterator_instlast)</td></tr>
<tr class="separator:aaf9c618adece3370f1da1abe8d9ce36e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8600c8dbdfef5615335579d54629ea1b"><td class="memTemplParams" colspan="2">template&lt;typename T_FEATURE , typename T_INSTANCES_CLUSTER_K , typename T_CLUSTERIDX , typename INPUT_ITERATOR &gt; </td></tr>
<tr class="memitem:a8600c8dbdfef5615335579d54629ea1b"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceclusteringop.html#a8600c8dbdfef5615335579d54629ea1b">randomInitialize</a> (<a class="el" href="classmat_1_1_matrix_base.html">mat::MatrixBase</a>&lt; T_FEATURE &gt; &amp;aomatrixt_centroids, T_CLUSTERIDX *aoarraycidx_memberShip, std::vector&lt; T_INSTANCES_CLUSTER_K &gt; &amp;aovectorit_numInstClusterK, INPUT_ITERATOR aiiterator_instfirst, const INPUT_ITERATOR aiiterator_instlast)</td></tr>
<tr class="memdesc:a8600c8dbdfef5615335579d54629ea1b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize the centroids and labels by selecting random instances.  <a href="#a8600c8dbdfef5615335579d54629ea1b">More...</a><br /></td></tr>
<tr class="separator:a8600c8dbdfef5615335579d54629ea1b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad5da564b9274992e7f64e53f3c9d14b3"><td class="memTemplParams" colspan="2">template&lt;typename T_FEATURE , typename T_CLUSTERIDX , typename T_DIST , typename INPUT_ITERATOR &gt; </td></tr>
<tr class="memitem:ad5da564b9274992e7f64e53f3c9d14b3"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="common_8hpp.html#a3f6c33fb604556cdc425e7aa2289d009">uintidx</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceclusteringop.html#ad5da564b9274992e7f64e53f3c9d14b3">reassignCluster</a> (T_CLUSTERIDX *aioarraycidx_memberShip, const <a class="el" href="classmat_1_1_matrix_row.html">mat::MatrixRow</a>&lt; T_FEATURE &gt; &amp;aimatrixt_centroids, INPUT_ITERATOR aiiterator_instfirst, const INPUT_ITERATOR aiiterator_instlast, const <a class="el" href="structdist_1_1_dist.html">dist::Dist</a>&lt; T_DIST, T_FEATURE &gt; &amp;aifunc2p_dist)</td></tr>
<tr class="memdesc:ad5da564b9274992e7f64e53f3c9d14b3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Change each instance to the nearest cluster.  <a href="#ad5da564b9274992e7f64e53f3c9d14b3">More...</a><br /></td></tr>
<tr class="separator:ad5da564b9274992e7f64e53f3c9d14b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4cd166849eef381706813bb06e2029b4"><td class="memTemplParams" colspan="2">template&lt;typename T_FEATURE , typename T_CLUSTERIDX , typename T_DIST , typename INPUT_ITERATOR &gt; </td></tr>
<tr class="memitem:a4cd166849eef381706813bb06e2029b4"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceclusteringop.html#a4cd166849eef381706813bb06e2029b4">setUpCuster</a> (T_CLUSTERIDX *aioarraycidx_memberShip, const <a class="el" href="classmat_1_1_matrix_row.html">mat::MatrixRow</a>&lt; T_FEATURE &gt; &amp;aimatrixt_centroids, INPUT_ITERATOR aiiterator_instfirst, const INPUT_ITERATOR aiiterator_instlast, const <a class="el" href="structdist_1_1_dist.html">dist::Dist</a>&lt; T_DIST, T_FEATURE &gt; &amp;aifunc2p_dist)</td></tr>
<tr class="memdesc:a4cd166849eef381706813bb06e2029b4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set up cluster index.  <a href="#a4cd166849eef381706813bb06e2029b4">More...</a><br /></td></tr>
<tr class="separator:a4cd166849eef381706813bb06e2029b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac52fbdbee047ca93bef1426d6493f31f"><td class="memTemplParams" colspan="2">template&lt;typename T_FEATURE , typename T_FEATURE_SUM , typename T_INSTANCES_CLUSTER_K , typename T_CLUSTERIDX , typename INPUT_ITERATOR &gt; </td></tr>
<tr class="memitem:ac52fbdbee047ca93bef1426d6493f31f"><td class="memTemplItemLeft" align="right" valign="top">T_CLUSTERIDX&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceclusteringop.html#ac52fbdbee047ca93bef1426d6493f31f">getCentroids</a> (<a class="el" href="classmat_1_1_matrix_row.html">mat::MatrixRow</a>&lt; T_FEATURE &gt; &amp;aomatrixt_centroids, <a class="el" href="classmat_1_1_matrix_row.html">mat::MatrixRow</a>&lt; T_FEATURE_SUM &gt; &amp;aomatrixt_sumInstancesCluster, std::vector&lt; T_INSTANCES_CLUSTER_K &gt; &amp;aovectort_numInstancesInClusterK, <a class="el" href="classpartition_1_1_partition.html">partition::Partition</a>&lt; T_CLUSTERIDX &gt; &amp;aipartition_clusters, INPUT_ITERATOR aiiterator_instfirst, const INPUT_ITERATOR aiiterator_instlast)</td></tr>
<tr class="separator:ac52fbdbee047ca93bef1426d6493f31f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad049486ebab197e0041b0f9f36b2b30b"><td class="memTemplParams" colspan="2">template&lt;typename T_BITSIZE , typename T_FEATURE , typename T_INSTANCES_CLUSTER_K , typename T_CLUSTERIDX , typename T_REAL &gt; </td></tr>
<tr class="memitem:ad049486ebab197e0041b0f9f36b2b30b"><td class="memTemplItemLeft" align="right" valign="top">std::tuple&lt; <a class="el" href="classmat_1_1_matrix_row.html">mat::MatrixRow</a>&lt; T_FEATURE &gt;, <a class="el" href="classpartition_1_1_partition_disj_sets.html">partition::PartitionDisjSets</a>&lt; T_CLUSTERIDX &gt;, std::vector&lt; T_INSTANCES_CLUSTER_K &gt; &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceclusteringop.html#ad049486ebab197e0041b0f9f36b2b30b">getClusters</a> (const <a class="el" href="classmat_1_1_bit_array.html">mat::BitArray</a>&lt; T_BITSIZE &gt; &amp;aibirarray_clusterSeedIdx, const <a class="el" href="classmat_1_1_matrix_row.html">mat::MatrixRow</a>&lt; T_FEATURE &gt; &amp;aimatrixrowt_Vi, const std::vector&lt; T_INSTANCES_CLUSTER_K &gt; &amp;aivectort_numInstBi, const <a class="el" href="structdist_1_1_dist.html">dist::Dist</a>&lt; T_REAL, T_FEATURE &gt; &amp;aifunc2p_dist, const T_CLUSTERIDX aiit_datatypeClusterIdx)</td></tr>
<tr class="separator:ad049486ebab197e0041b0f9f36b2b30b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2fc69a2d3ca3c2fcc28c71892eee446a"><td class="memTemplParams" colspan="2">template&lt;typename INPUT_ITERATOR , typename T_FEATURE , typename T_FEATURE_SUM , typename T_INSTANCES_CLUSTER_K , typename T_CLUSTERIDX , typename T_DIST &gt; </td></tr>
<tr class="memitem:a2fc69a2d3ca3c2fcc28c71892eee446a"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceclusteringop.html#a2fc69a2d3ca3c2fcc28c71892eee446a">updateCentroids</a> (T_CLUSTERIDX &amp;aocidx_numClusterNull, <a class="el" href="classmat_1_1_matrix_row.html">mat::MatrixRow</a>&lt; T_FEATURE &gt; &amp;aiomatrixt_centroids, <a class="el" href="classmat_1_1_matrix_row.html">mat::MatrixRow</a>&lt; T_FEATURE_SUM &gt; &amp;aomatrixt_sumInstancesCluster, std::vector&lt; T_INSTANCES_CLUSTER_K &gt; &amp;aovectort_numInstancesInClusterK, INPUT_ITERATOR aiiterator_instfirst, const INPUT_ITERATOR aiiterator_instlast, const <a class="el" href="structdist_1_1_dist.html">dist::Dist</a>&lt; T_DIST, T_FEATURE &gt; &amp;aifunc2p_dist)</td></tr>
<tr class="separator:a2fc69a2d3ca3c2fcc28c71892eee446a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3b44507749ee74e3ef4cb30ea4c8ed6f"><td class="memTemplParams" colspan="2">template&lt;typename T_FEATURE , typename T_FEATURE_SUM , typename T_INSTANCES_CLUSTER_K , typename T_CLUSTERIDX , typename T_DIST , typename INPUT_ITERATOR &gt; </td></tr>
<tr class="memitem:a3b44507749ee74e3ef4cb30ea4c8ed6f"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceclusteringop.html#a3b44507749ee74e3ef4cb30ea4c8ed6f">updateClusterCj</a> (<a class="el" href="classmat_1_1_matrix_row.html">mat::MatrixRow</a>&lt; T_FEATURE &gt; &amp;aiomatrixt_centroids, <a class="el" href="classmat_1_1_matrix_row.html">mat::MatrixRow</a>&lt; T_FEATURE_SUM &gt; &amp;aiomatrixt_sumInstCluster, std::vector&lt; T_INSTANCES_CLUSTER_K &gt; &amp;aovectorit_numInstClusterK, T_CLUSTERIDX *aioarraycidx_memberShip, T_CLUSTERIDX aicidx_Cj, std::vector&lt; T_CLUSTERIDX &gt; &amp;aivectorcidx_clustersNew, INPUT_ITERATOR aiiterator_instfirst, const INPUT_ITERATOR aiiterator_instlast, <a class="el" href="structdist_1_1_dist.html">dist::Dist</a>&lt; T_DIST, T_FEATURE &gt; &amp;aifunc2p_dist)</td></tr>
<tr class="separator:a3b44507749ee74e3ef4cb30ea4c8ed6f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adcc8e46fcc27f73c5a683d7f509d03d5"><td class="memTemplParams" colspan="2">template&lt;typename T_CLUSTERIDX , typename T_FEATURE , typename T_FEATURE_SUM , typename T_INSTANCES_CLUSTER_K , typename T_DIST , typename INPUT_ITERATOR &gt; </td></tr>
<tr class="memitem:adcc8e46fcc27f73c5a683d7f509d03d5"><td class="memTemplItemLeft" align="right" valign="top">T_CLUSTERIDX&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceclusteringop.html#adcc8e46fcc27f73c5a683d7f509d03d5">kmeansoperator</a> (T_CLUSTERIDX *aioarraycidx_memberShip, <a class="el" href="classmat_1_1_matrix_row.html">mat::MatrixRow</a>&lt; T_FEATURE &gt; &amp;aomatrixt_centroids, <a class="el" href="classmat_1_1_matrix_row.html">mat::MatrixRow</a>&lt; T_FEATURE_SUM &gt; &amp;aomatrixt_sumInstancesCluster, std::vector&lt; T_INSTANCES_CLUSTER_K &gt; &amp;aovectort_numInstancesInClusterK, INPUT_ITERATOR aiiterator_instfirst, const INPUT_ITERATOR aiiterator_instlast, <a class="el" href="structdist_1_1_dist.html">dist::Dist</a>&lt; T_DIST, T_FEATURE &gt; &amp;aifunc2p_dist)</td></tr>
<tr class="memdesc:adcc8e46fcc27f73c5a683d7f509d03d5"><td class="mdescLeft">&#160;</td><td class="mdescRight">K-Means Operator <a class="el" href="citelist.html#CITEREF_Krishna:Murty:GAClustering:GKA:1999">[26]</a>.  <a href="#adcc8e46fcc27f73c5a683d7f509d03d5">More...</a><br /></td></tr>
<tr class="separator:adcc8e46fcc27f73c5a683d7f509d03d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a80f659f51e3847d5dfd184e0f253488e"><td class="memTemplParams" colspan="2">template&lt;typename T_FEATURE , typename T_CLUSTERIDX , typename T_INSTANCE_FREQUENCY , typename T_INSTANCES_CLUSTER_K , typename T_FEATURE_SUM , typename T_DIST , typename INPUT_ITERATOR &gt; </td></tr>
<tr class="memitem:a80f659f51e3847d5dfd184e0f253488e"><td class="memTemplItemLeft" align="right" valign="top">std::pair&lt; bool, T_DIST &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceclusteringop.html#a80f659f51e3847d5dfd184e0f253488e">reassignCluster</a> (<a class="el" href="classds_1_1_partition_linked_stats.html">ds::PartitionLinkedStats</a>&lt; T_FEATURE, T_CLUSTERIDX, T_INSTANCE_FREQUENCY, T_INSTANCES_CLUSTER_K, T_FEATURE_SUM &gt; &amp;aoipartlinkstats_partition, const <a class="el" href="classmat_1_1_matrix_base.html">mat::MatrixBase</a>&lt; T_FEATURE &gt; &amp;aimatrixt_centroids, INPUT_ITERATOR aiiterator_instfirst, const INPUT_ITERATOR aiiterator_instlast, const <a class="el" href="structdist_1_1_dist.html">dist::Dist</a>&lt; T_DIST, T_FEATURE &gt; &amp;aifunc2p_dist)</td></tr>
<tr class="memdesc:a80f659f51e3847d5dfd184e0f253488e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Change each instance to the nearest cluster.  <a href="#a80f659f51e3847d5dfd184e0f253488e">More...</a><br /></td></tr>
<tr class="separator:a80f659f51e3847d5dfd184e0f253488e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab70a2332e3a3d06888683651309664ed"><td class="memTemplParams" colspan="2">template&lt;typename T_FEATURE , typename T_CLUSTERIDX , typename T_INSTANCE_FREQUENCY , typename T_INSTANCES_CLUSTER_K , typename T_FEATURE_SUM , typename T_DIST , typename INPUT_ITERATOR &gt; </td></tr>
<tr class="memitem:ab70a2332e3a3d06888683651309664ed"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceclusteringop.html#ab70a2332e3a3d06888683651309664ed">reassignCluster</a> (<a class="el" href="classds_1_1_partition_linked_stats.html">ds::PartitionLinkedStats</a>&lt; T_FEATURE, T_CLUSTERIDX, T_INSTANCE_FREQUENCY, T_INSTANCES_CLUSTER_K, T_FEATURE_SUM &gt; &amp;aoipartlinkstats_partition, const <a class="el" href="classmat_1_1_matrix_base.html">mat::MatrixBase</a>&lt; T_FEATURE &gt; &amp;aimatrixt_centroids, T_CLUSTERIDX *aiarraycidx_newIndex, <a class="el" href="common_8hpp.html#a3f6c33fb604556cdc425e7aa2289d009">uintidx</a> aiui_countNewIndex, INPUT_ITERATOR aiiterator_instfirst, const INPUT_ITERATOR aiiterator_instlast, const <a class="el" href="structdist_1_1_dist.html">dist::Dist</a>&lt; T_DIST, T_FEATURE &gt; &amp;aifunc2p_dist)</td></tr>
<tr class="memdesc:ab70a2332e3a3d06888683651309664ed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reassign cluster.  <a href="#ab70a2332e3a3d06888683651309664ed">More...</a><br /></td></tr>
<tr class="separator:ab70a2332e3a3d06888683651309664ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a085fe038ee0b6d313db259ac1b61cafb"><td class="memTemplParams" colspan="2">template&lt;typename T_FEATURE , typename T_CLUSTERIDX , typename T_INSTANCE_FREQUENCY , typename T_INSTANCES_CLUSTER_K , typename T_FEATURE_SUM , typename INPUT_ITERATOR &gt; </td></tr>
<tr class="memitem:a085fe038ee0b6d313db259ac1b61cafb"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceclusteringop.html#a085fe038ee0b6d313db259ac1b61cafb">joinPartition</a> (<a class="el" href="classds_1_1_partition_linked_stats.html">ds::PartitionLinkedStats</a>&lt; T_FEATURE, T_CLUSTERIDX, T_INSTANCE_FREQUENCY, T_INSTANCES_CLUSTER_K, T_FEATURE_SUM &gt; &amp;aoipartlinkstats_partition, const T_CLUSTERIDX aicidx_partitionFrom, const T_CLUSTERIDX aicidx_partitionTo, const INPUT_ITERATOR aiiterator_instfirst)</td></tr>
<tr class="separator:a085fe038ee0b6d313db259ac1b61cafb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a105a75742a54520f643812c0ad4f0598"><td class="memTemplParams" colspan="2">template&lt;typename T_FEATURE , typename T_CLUSTERIDX , typename T_INSTANCE_FREQUENCY , typename T_INSTANCES_CLUSTER_K , typename T_FEATURE_SUM , typename T_DIST , typename INPUT_ITERATOR &gt; </td></tr>
<tr class="memitem:a105a75742a54520f643812c0ad4f0598"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceclusteringop.html#a105a75742a54520f643812c0ad4f0598">fillEmptyPartitions</a> (<a class="el" href="classds_1_1_partition_linked_stats.html">ds::PartitionLinkedStats</a>&lt; T_FEATURE, T_CLUSTERIDX, T_INSTANCE_FREQUENCY, T_INSTANCES_CLUSTER_K, T_FEATURE_SUM &gt; &amp;aiopartlinkstats_partition, <a class="el" href="classmat_1_1_matrix_resizable_row.html">mat::MatrixResizableRow</a>&lt; T_FEATURE, T_INSTANCES_CLUSTER_K &gt; &amp;aiomatrixresizerow_centroids, const INPUT_ITERATOR aiiterator_instfirst, const INPUT_ITERATOR aiiterator_instlast, const <a class="el" href="structdist_1_1_dist.html">dist::Dist</a>&lt; T_DIST, T_FEATURE &gt; &amp;aifunc2p_dist)</td></tr>
<tr class="memdesc:a105a75742a54520f643812c0ad4f0598"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fill empty partitions.  <a href="#a105a75742a54520f643812c0ad4f0598">More...</a><br /></td></tr>
<tr class="separator:a105a75742a54520f643812c0ad4f0598"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5a2ccb8bee604ff182b712b2ecb91020"><td class="memTemplParams" colspan="2">template&lt;typename T_FEATURE , typename T_CLUSTERIDX , typename T_INSTANCE_FREQUENCY , typename T_INSTANCES_CLUSTER_K , typename T_FEATURE_SUM , typename INPUT_ITERATOR &gt; </td></tr>
<tr class="memitem:a5a2ccb8bee604ff182b712b2ecb91020"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceclusteringop.html#a5a2ccb8bee604ff182b712b2ecb91020">removeEmptyPartitions</a> (<a class="el" href="classds_1_1_partition_linked_stats.html">ds::PartitionLinkedStats</a>&lt; T_FEATURE, T_CLUSTERIDX, T_INSTANCE_FREQUENCY, T_INSTANCES_CLUSTER_K, T_FEATURE_SUM &gt; &amp;aoipartlinkstats_partition, <a class="el" href="classmat_1_1_matrix_resizable_row.html">mat::MatrixResizableRow</a>&lt; T_FEATURE, T_INSTANCES_CLUSTER_K &gt; &amp;aomatrixresizerow_centroids, const INPUT_ITERATOR aiiterator_instfirst, const T_CLUSTERIDX aicidx_numclusterKTopMin)</td></tr>
<tr class="memdesc:a5a2ccb8bee604ff182b712b2ecb91020"><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove empty partitions.  <a href="#a5a2ccb8bee604ff182b712b2ecb91020">More...</a><br /></td></tr>
<tr class="separator:a5a2ccb8bee604ff182b712b2ecb91020"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8dda4c828d8ffde2aff08eb40dc35190"><td class="memTemplParams" colspan="2">template&lt;typename T_FEATURE , typename T_CLUSTERIDX , typename T_INSTANCE_FREQUENCY , typename T_INSTANCES_CLUSTER_K , typename T_FEATURE_SUM , typename T_DIST , typename INPUT_ITERATOR &gt; </td></tr>
<tr class="memitem:a8dda4c828d8ffde2aff08eb40dc35190"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceclusteringop.html#a8dda4c828d8ffde2aff08eb40dc35190">pnnFast</a> (<a class="el" href="classds_1_1_partition_linked_stats.html">ds::PartitionLinkedStats</a>&lt; T_FEATURE, T_CLUSTERIDX, T_INSTANCE_FREQUENCY, T_INSTANCES_CLUSTER_K, T_FEATURE_SUM &gt; &amp;aoipartlinkstats_partition, <a class="el" href="classmat_1_1_matrix_resizable_row.html">mat::MatrixResizableRow</a>&lt; T_FEATURE, T_INSTANCES_CLUSTER_K &gt; &amp;aiomatrixresizerow_centroids, INPUT_ITERATOR aiiterator_instfirst, const INPUT_ITERATOR aiiterator_instlast, const T_CLUSTERIDX aicidx_numclusterKToReduce, const <a class="el" href="structdist_1_1_dist.html">dist::Dist</a>&lt; T_DIST, T_FEATURE &gt; &amp;aifunc2p_dist)</td></tr>
<tr class="separator:a8dda4c828d8ffde2aff08eb40dc35190"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a59f12278653c5ab03b44f0d03935c4da"><td class="memTemplParams" colspan="2">template&lt;typename T_BITSIZE , typename T_CLUSTERIDX &gt; </td></tr>
<tr class="memitem:a59f12278653c5ab03b44f0d03935c4da"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceclusteringop.html#a59f12278653c5ab03b44f0d03935c4da">randomInitialize</a> (<a class="el" href="classmat_1_1_crisp_matrix.html">mat::CrispMatrix</a>&lt; T_BITSIZE, T_CLUSTERIDX &gt; &amp;aiocrispmatrix_partition)</td></tr>
<tr class="separator:a59f12278653c5ab03b44f0d03935c4da"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aac57c8e9f6d44fecb10a2a0855accb76"><td class="memTemplParams" colspan="2">template&lt;typename T_BITSIZE , typename T_CLUSTERIDX , typename INPUT_ITERATOR , typename FUNCTION_INSTCLASS &gt; </td></tr>
<tr class="memitem:aac57c8e9f6d44fecb10a2a0855accb76"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceclusteringop.html#aac57c8e9f6d44fecb10a2a0855accb76">initializeOptimal</a> (<a class="el" href="classmat_1_1_crisp_matrix.html">mat::CrispMatrix</a>&lt; T_BITSIZE, T_CLUSTERIDX &gt; &amp;aiocrispmatrix_partition, INPUT_ITERATOR aiiterator_instfirst, const INPUT_ITERATOR aiiterator_instlast, FUNCTION_INSTCLASS function_instClass)</td></tr>
<tr class="separator:aac57c8e9f6d44fecb10a2a0855accb76"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aee71048bdb18bb63b9d0e05f30e8c719"><td class="memTemplParams" colspan="2">template&lt;typename T_FEATURE , typename T_FEATURE_SUM , typename T_INSTANCES_CLUSTER_K , typename T_BITSIZE , typename T_CLUSTERIDX &gt; </td></tr>
<tr class="memitem:aee71048bdb18bb63b9d0e05f30e8c719"><td class="memTemplItemLeft" align="right" valign="top">T_CLUSTERIDX&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceclusteringop.html#aee71048bdb18bb63b9d0e05f30e8c719">getCentroids</a> (<a class="el" href="classmat_1_1_matrix_row.html">mat::MatrixRow</a>&lt; T_FEATURE &gt; &amp;aomatrixt_centroids, <a class="el" href="classmat_1_1_matrix_row.html">mat::MatrixRow</a>&lt; T_FEATURE_SUM &gt; &amp;aomatrixt_sumInstancesCluster, std::vector&lt; T_INSTANCES_CLUSTER_K &gt; &amp;aovectort_numInstancesInClusterK, <a class="el" href="classmat_1_1_crisp_matrix.html">mat::CrispMatrix</a>&lt; T_BITSIZE, T_CLUSTERIDX &gt; &amp;aicrispmatrix_partition, <a class="el" href="classmat_1_1_matrix_row.html">mat::MatrixRow</a>&lt; T_FEATURE &gt; &amp;aimatrixt_instances)</td></tr>
<tr class="memdesc:aee71048bdb18bb63b9d0e05f30e8c719"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate centroids.  <a href="#aee71048bdb18bb63b9d0e05f30e8c719">More...</a><br /></td></tr>
<tr class="separator:aee71048bdb18bb63b9d0e05f30e8c719"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afc2da46808bfd8a24341691978679c18"><td class="memTemplParams" colspan="2">template&lt;typename T_FEATURE , typename T_CLUSTERIDX , typename T_BITSIZE , typename T_DIST &gt; </td></tr>
<tr class="memitem:afc2da46808bfd8a24341691978679c18"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceclusteringop.html#afc2da46808bfd8a24341691978679c18">getPartition</a> (<a class="el" href="classmat_1_1_crisp_matrix.html">mat::CrispMatrix</a>&lt; T_BITSIZE, T_CLUSTERIDX &gt; &amp;aobcrispmatrix_partition, <a class="el" href="classmat_1_1_matrix_row.html">mat::MatrixRow</a>&lt; T_FEATURE &gt; &amp;aimatrixt_instances, <a class="el" href="classmat_1_1_matrix_row.html">mat::MatrixRow</a>&lt; T_FEATURE &gt; &amp;aimatrixt_centroids, <a class="el" href="structdist_1_1_dist.html">dist::Dist</a>&lt; T_DIST, T_FEATURE &gt; &amp;aifunc2p_dist)</td></tr>
<tr class="memdesc:afc2da46808bfd8a24341691978679c18"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get partition.  <a href="#afc2da46808bfd8a24341691978679c18">More...</a><br /></td></tr>
<tr class="separator:afc2da46808bfd8a24341691978679c18"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aead202e766c9510d8e193d0f7317f66c"><td class="memTemplParams" colspan="2">template&lt;typename T_REAL &gt; </td></tr>
<tr class="memitem:aead202e766c9510d8e193d0f7317f66c"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceclusteringop.html#aead202e766c9510d8e193d0f7317f66c">randomInitialize</a> (<a class="el" href="classmat_1_1_matrix_row.html">mat::MatrixRow</a>&lt; T_REAL &gt; &amp;aomatrixt_fuzzyPartition)</td></tr>
<tr class="memdesc:aead202e766c9510d8e193d0f7317f66c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes randomly a fuzzy partition.  <a href="#aead202e766c9510d8e193d0f7317f66c">More...</a><br /></td></tr>
<tr class="separator:aead202e766c9510d8e193d0f7317f66c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3e298d769afd50e51d06baf8b1ca1a2f"><td class="memTemplParams" colspan="2">template&lt;typename INPUT_ITERATOR , typename T_FEATURE , typename T_REAL &gt; </td></tr>
<tr class="memitem:a3e298d769afd50e51d06baf8b1ca1a2f"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classmat_1_1_matrix_row.html">mat::MatrixRow</a>&lt; T_REAL &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceclusteringop.html#a3e298d769afd50e51d06baf8b1ca1a2f">fuzzyPartition</a> (const <a class="el" href="classmat_1_1_matrix_row.html">mat::MatrixRow</a>&lt; T_FEATURE &gt; &amp;aimatrixt_centroids, INPUT_ITERATOR aiiterator_instfirst, const INPUT_ITERATOR aiiterator_instlast, T_REAL airt_m, const <a class="el" href="structdist_1_1_dist.html">dist::Dist</a>&lt; T_REAL, T_FEATURE &gt; &amp;aifunc2p_distSquare)</td></tr>
<tr class="memdesc:a3e298d769afd50e51d06baf8b1ca1a2f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a <img class="formulaInl" alt="$ U_{x \times n } = [u_{ji}] $" src="form_1.png"/> fuzzy c-partitions based on <a class="el" href="citelist.html#CITEREF_Bezdek:ClusterAnalysis:FCM:1974">[8]</a> <a class="el" href="citelist.html#CITEREF_Bezdek:etal:ClusterAnalysis:FCM:1984">[6]</a>.  <a href="#a3e298d769afd50e51d06baf8b1ca1a2f">More...</a><br /></td></tr>
<tr class="separator:a3e298d769afd50e51d06baf8b1ca1a2f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5f3b6f28e36f5e77ae6164da1d85ddc7"><td class="memTemplParams" colspan="2">template&lt;typename T_REAL , typename T_FEATURE &gt; </td></tr>
<tr class="memitem:a5f3b6f28e36f5e77ae6164da1d85ddc7"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceclusteringop.html#a5f3b6f28e36f5e77ae6164da1d85ddc7">getCentroids</a> (<a class="el" href="classmat_1_1_matrix_row.html">mat::MatrixRow</a>&lt; T_FEATURE &gt; &amp;aomatrixt_centroids, <a class="el" href="classmat_1_1_matrix_row.html">mat::MatrixRow</a>&lt; T_REAL &gt; &amp;aimatrixt_fuzzyPartition, <a class="el" href="classmat_1_1_matrix_row.html">mat::MatrixRow</a>&lt; T_FEATURE &gt; &amp;aimatrixt_instances, T_REAL ait_m, <a class="el" href="classmat_1_1_matrix_row.html">mat::MatrixRow</a>&lt; T_REAL &gt; &amp;aimatrixrowt_work)</td></tr>
<tr class="separator:a5f3b6f28e36f5e77ae6164da1d85ddc7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa126347cfbbecc46d103f1a60a048dc0"><td class="memTemplParams" colspan="2">template&lt;typename T_REAL , typename T_FEATURE &gt; </td></tr>
<tr class="memitem:aa126347cfbbecc46d103f1a60a048dc0"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceclusteringop.html#aa126347cfbbecc46d103f1a60a048dc0">reassignCluster</a> (<a class="el" href="classmat_1_1_matrix_row.html">mat::MatrixRow</a>&lt; T_REAL &gt; &amp;aomatrixt_fuzzyPartition, <a class="el" href="classmat_1_1_matrix_row.html">mat::MatrixRow</a>&lt; T_FEATURE &gt; &amp;aimatrixt_instances, <a class="el" href="classmat_1_1_matrix_row.html">mat::MatrixRow</a>&lt; T_FEATURE &gt; &amp;aimatrixt_centroids, T_REAL ait_m, <a class="el" href="structdist_1_1_dist.html">dist::Dist</a>&lt; T_REAL, T_FEATURE &gt; &amp;aifunc2p_squaredDist)</td></tr>
<tr class="separator:aa126347cfbbecc46d103f1a60a048dc0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7fadea9ded0a7c876b8f58c3f303d316"><td class="memTemplParams" colspan="2">template&lt;typename T_REAL &gt; </td></tr>
<tr class="memitem:a7fadea9ded0a7c876b8f58c3f303d316"><td class="memTemplItemLeft" align="right" valign="top">std::vector&lt; std::pair&lt; <a class="el" href="common_8hpp.html#a3f6c33fb604556cdc425e7aa2289d009">uintidx</a>, T_REAL &gt; &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceclusteringop.html#a7fadea9ded0a7c876b8f58c3f303d316">sortLambda</a> (const <a class="el" href="common_8hpp.html#a3f6c33fb604556cdc425e7aa2289d009">uintidx</a> *aiarrayiu_pi, const T_REAL *aiarrayrt_lambda, const <a class="el" href="common_8hpp.html#a3f6c33fb604556cdc425e7aa2289d009">uintidx</a> aiui_numObj)</td></tr>
<tr class="separator:a7fadea9ded0a7c876b8f58c3f303d316"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8dbc301d107623488824391c69803015"><td class="memTemplParams" colspan="2">template&lt;typename T_REAL &gt; </td></tr>
<tr class="memitem:a8dbc301d107623488824391c69803015"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classds_1_1_disj_sets.html">ds::DisjSets</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceclusteringop.html#a8dbc301d107623488824391c69803015">pointerToDisjSets</a> (const std::vector&lt; std::pair&lt; <a class="el" href="common_8hpp.html#a3f6c33fb604556cdc425e7aa2289d009">uintidx</a>, T_REAL &gt; &gt; &amp;aivector_pairIdxLambda, const <a class="el" href="common_8hpp.html#a3f6c33fb604556cdc425e7aa2289d009">uintidx</a> *aiarrayiu_pi, const <a class="el" href="common_8hpp.html#a3f6c33fb604556cdc425e7aa2289d009">uintidx</a> aiui_numClusterK)</td></tr>
<tr class="separator:a8dbc301d107623488824391c69803015"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa3a86f02dae86d464cf4dfc2a7064922"><td class="memTemplParams" colspan="2">template&lt;typename T_REAL , typename INPUT_ITERATOR , typename FUNCTION_DISTANCE &gt; </td></tr>
<tr class="memitem:aa3a86f02dae86d464cf4dfc2a7064922"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceclusteringop.html#aa3a86f02dae86d464cf4dfc2a7064922">slink</a> (<a class="el" href="common_8hpp.html#a3f6c33fb604556cdc425e7aa2289d009">uintidx</a> *aoarrayiu_pi, T_REAL *aoarrayrt_lambda, const INPUT_ITERATOR aiiterator_instfirst, const INPUT_ITERATOR aiiterator_instlast, FUNCTION_DISTANCE function_distance)</td></tr>
<tr class="separator:aa3a86f02dae86d464cf4dfc2a7064922"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aedd5103dd69d139b911013b98cf60709"><td class="memTemplParams" colspan="2">template&lt;typename T_CLUSTERIDX &gt; </td></tr>
<tr class="memitem:aedd5103dd69d139b911013b98cf60709"><td class="memTemplItemLeft" align="right" valign="top">std::vector&lt; T_CLUSTERIDX &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceclusteringop.html#aedd5103dd69d139b911013b98cf60709">bkinCiToMemberShip</a> (const <a class="el" href="classpartition_1_1_partition_disj_sets.html">partition::PartitionDisjSets</a>&lt; T_CLUSTERIDX &gt; &amp;aimembclassdisjsets_Bi, const <a class="el" href="classpartition_1_1_partition_disj_sets.html">partition::PartitionDisjSets</a>&lt; T_CLUSTERIDX &gt; &amp;aimembclassdisjsets_BkinCi)</td></tr>
<tr class="separator:aedd5103dd69d139b911013b98cf60709"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9811c142c169af0321631f773797089c"><td class="memTemplParams" colspan="2">template&lt;typename T_INSTANCEIDX , typename T_DIST , typename T_CLUSTERIDX &gt; </td></tr>
<tr class="memitem:a9811c142c169af0321631f773797089c"><td class="memTemplItemLeft" align="right" valign="top">std::tuple&lt; T_DIST, <a class="el" href="classds_1_1_partition_linked.html">ds::PartitionLinked</a>&lt; T_CLUSTERIDX &gt; &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceclusteringop.html#a9811c142c169af0321631f773797089c">nearestRepresentative</a> (T_INSTANCEIDX *aioarrayui_idxMedoids, T_CLUSTERIDX aicidx_numKMedoids, const <a class="el" href="classmat_1_1_matrix_triang.html">mat::MatrixTriang</a>&lt; T_DIST &gt; &amp;aimattriag_dissimilarity)</td></tr>
<tr class="memdesc:a9811c142c169af0321631f773797089c"><td class="mdescLeft">&#160;</td><td class="mdescRight">nearestRepresentative  <a href="#a9811c142c169af0321631f773797089c">More...</a><br /></td></tr>
<tr class="separator:a9811c142c169af0321631f773797089c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a53d2b1e72d462871d3fdfb52f3ece4a4"><td class="memTemplParams" colspan="2">template&lt;typename T_INSTANCEIDX , typename T_DIST , typename T_CLUSTERIDX &gt; </td></tr>
<tr class="memitem:a53d2b1e72d462871d3fdfb52f3ece4a4"><td class="memTemplItemLeft" align="right" valign="top">std::pair&lt; T_DIST, T_INSTANCEIDX &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceclusteringop.html#a53d2b1e72d462871d3fdfb52f3ece4a4">nearestRepresentative</a> (T_CLUSTERIDX *aoarraycidx_memberShip, const T_INSTANCEIDX *aioarrayui_idxMedoids, const T_CLUSTERIDX aicidx_numKMedoids, const <a class="el" href="classmat_1_1_matrix_triang.html">mat::MatrixTriang</a>&lt; T_DIST &gt; &amp;aimattriag_dissimilarity)</td></tr>
<tr class="memdesc:a53d2b1e72d462871d3fdfb52f3ece4a4"><td class="mdescLeft">&#160;</td><td class="mdescRight">nearestRepresentative <a class="el" href="citelist.html#CITEREF_Kaufman:Rousseeuw:Book:ClusterAnalysis:1990">[25]</a>  <a href="#a53d2b1e72d462871d3fdfb52f3ece4a4">More...</a><br /></td></tr>
<tr class="separator:a53d2b1e72d462871d3fdfb52f3ece4a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afe5f3dd79bf850625b0e330cd42873b3"><td class="memTemplParams" colspan="2">template&lt;typename T_INSTANCEIDX , typename T_DIST , typename T_CLUSTERIDX &gt; </td></tr>
<tr class="memitem:afe5f3dd79bf850625b0e330cd42873b3"><td class="memTemplItemLeft" align="right" valign="top">T_DIST&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceclusteringop.html#afe5f3dd79bf850625b0e330cd42873b3">computeTotalCostSwap</a> (const T_INSTANCEIDX aiuiidx_medoidRand, const T_CLUSTERIDX *aiarraycidx_memberShip, T_INSTANCEIDX *aoarrayuiidx_medoids, const T_CLUSTERIDX aicidx_numKMedoids, const <a class="el" href="classmat_1_1_matrix_triang.html">mat::MatrixTriang</a>&lt; T_DIST &gt; &amp;aimattriag_dissimilarity)</td></tr>
<tr class="memdesc:afe5f3dd79bf850625b0e330cd42873b3"><td class="mdescLeft">&#160;</td><td class="mdescRight">computeTotalCostSwap  <a href="#afe5f3dd79bf850625b0e330cd42873b3">More...</a><br /></td></tr>
<tr class="separator:afe5f3dd79bf850625b0e330cd42873b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2543f9db12028d26cf5eb603370baa52"><td class="memTemplParams" colspan="2">template&lt;typename T_INSTANCEIDX , typename T_DIST , typename T_CLUSTERIDX &gt; </td></tr>
<tr class="memitem:a2543f9db12028d26cf5eb603370baa52"><td class="memTemplItemLeft" align="right" valign="top">T_DIST&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceclusteringop.html#a2543f9db12028d26cf5eb603370baa52">computeCostInstanceClusterJ</a> (T_INSTANCEIDX aiuintidx_medoids, T_CLUSTERIDX aicidx_Cj, <a class="el" href="classds_1_1_partition_linked.html">ds::PartitionLinked</a>&lt; T_CLUSTERIDX &gt; &amp;aipartlink_partition, <a class="el" href="classmat_1_1_matrix_triang.html">mat::MatrixTriang</a>&lt; T_DIST &gt; &amp;aimattriag_dissimilarity)</td></tr>
<tr class="memdesc:a2543f9db12028d26cf5eb603370baa52"><td class="mdescLeft">&#160;</td><td class="mdescRight">computeCostInstanceClusterJ  <a href="#a2543f9db12028d26cf5eb603370baa52">More...</a><br /></td></tr>
<tr class="separator:a2543f9db12028d26cf5eb603370baa52"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac88386dee7f9622d967508e4111fa2e5"><td class="memTemplParams" colspan="2">template&lt;typename T_INSTANCEIDX , typename T_DIST , typename T_CLUSTERIDX &gt; </td></tr>
<tr class="memitem:ac88386dee7f9622d967508e4111fa2e5"><td class="memTemplItemLeft" align="right" valign="top">T_DIST&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceclusteringop.html#ac88386dee7f9622d967508e4111fa2e5">updateMedoids</a> (T_INSTANCEIDX *aioarrayui_idxMedoids, const T_CLUSTERIDX aicidx_numKMedoids, const T_INSTANCEIDX aiu_nearestNeighborsP, <a class="el" href="classmat_1_1_matrix_triang.html">mat::MatrixTriang</a>&lt; T_DIST &gt; &amp;aimattriag_dissimilarity)</td></tr>
<tr class="memdesc:ac88386dee7f9622d967508e4111fa2e5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Update medoids, local search heuristic <a class="el" href="citelist.html#CITEREF_Sheng:Xiaohui:GAclusteringMedoid:HKA:2004">[37]</a>.  <a href="#ac88386dee7f9622d967508e4111fa2e5">More...</a><br /></td></tr>
<tr class="separator:ac88386dee7f9622d967508e4111fa2e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Clustering operators. </p>
<dl class="section version"><dt>Version</dt><dd>1.0 </dd></dl>
<dl class="section date"><dt>Date</dt><dd>2015-2017 </dd></dl>
<dl class="section copyright"><dt>Copyright</dt><dd>GPLv3 license </dd></dl>
</div><h2 class="groupheader">Function Documentation</h2>
<a id="aedd5103dd69d139b911013b98cf60709"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aedd5103dd69d139b911013b98cf60709">&#9670;&nbsp;</a></span>bkinCiToMemberShip()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T_CLUSTERIDX &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">std::vector&lt;T_CLUSTERIDX&gt; clusteringop::bkinCiToMemberShip </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classpartition_1_1_partition_disj_sets.html">partition::PartitionDisjSets</a>&lt; T_CLUSTERIDX &gt; &amp;&#160;</td>
          <td class="paramname"><em>aimembclassdisjsets_Bi</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classpartition_1_1_partition_disj_sets.html">partition::PartitionDisjSets</a>&lt; T_CLUSTERIDX &gt; &amp;&#160;</td>
          <td class="paramname"><em>aimembclassdisjsets_BkinCi</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="clustering__operator__label_8hpp_source.html#l00036">36</a> of file <a class="el" href="clustering__operator__label_8hpp_source.html">clustering_operator_label.hpp</a>.</p>

<p class="reference">Referenced by <a class="el" href="clustering__vksubclusterbinary_8hpp_source.html#l00072">eac::clustering_genetic()</a>, and <a class="el" href="main__gas__clustering_8cpp_source.html#l00198">main()</a>.</p>

</div>
</div>
<a id="a2543f9db12028d26cf5eb603370baa52"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2543f9db12028d26cf5eb603370baa52">&#9670;&nbsp;</a></span>computeCostInstanceClusterJ()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T_INSTANCEIDX , typename T_DIST , typename T_CLUSTERIDX &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">T_DIST clusteringop::computeCostInstanceClusterJ </td>
          <td>(</td>
          <td class="paramtype">T_INSTANCEIDX&#160;</td>
          <td class="paramname"><em>aiuintidx_medoids</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">T_CLUSTERIDX&#160;</td>
          <td class="paramname"><em>aicidx_Cj</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classds_1_1_partition_linked.html">ds::PartitionLinked</a>&lt; T_CLUSTERIDX &gt; &amp;&#160;</td>
          <td class="paramname"><em>aipartlink_partition</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classmat_1_1_matrix_triang.html">mat::MatrixTriang</a>&lt; T_DIST &gt; &amp;&#160;</td>
          <td class="paramname"><em>aimattriag_dissimilarity</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>computeCostInstanceClusterJ </p>
<p>calculates the cost or sum of Euclidean distances from the most representative to all the objects belonging to the cluster j </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">aiuintidx_medoids</td><td>an index of a medoid to investigate the cost </td></tr>
    <tr><td class="paramname">aicidx_Cj</td><td>an integer with the cluster index j </td></tr>
    <tr><td class="paramname">aipartlink_partition</td><td>a <a class="el" href="classpartition_1_1_partition.html" title="Definition of the abstract class Partition, to build a cluster of a dataset.">partition::Partition</a> of objects in clusters </td></tr>
    <tr><td class="paramname">aimattriag_dissimilarity</td><td>a distance matrix </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="clustering__operator__medoids_8hpp_source.html#l00319">319</a> of file <a class="el" href="clustering__operator__medoids_8hpp_source.html">clustering_operator_medoids.hpp</a>.</p>

<p class="reference">References <a class="el" href="partition__linked_8hpp_source.html#l00372">ds::IteratorPartitionLinked&lt; T_CLUSTERIDX &gt;::begin()</a>, <a class="el" href="partition__linked_8hpp_source.html#l00384">ds::IteratorPartitionLinked&lt; T_CLUSTERIDX &gt;::end()</a>, <a class="el" href="partition__linked_8hpp_source.html#l00389">ds::IteratorPartitionLinked&lt; T_CLUSTERIDX &gt;::getValue()</a>, and <a class="el" href="partition__linked_8hpp_source.html#l00378">ds::IteratorPartitionLinked&lt; T_CLUSTERIDX &gt;::next()</a>.</p>

<p class="reference">Referenced by <a class="el" href="clustering__operator__medoids_8hpp_source.html#l00389">updateMedoids()</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="namespaceclusteringop_a2543f9db12028d26cf5eb603370baa52_cgraph.svg" width="446" height="235"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>

</div>
</div>
<a id="afe5f3dd79bf850625b0e330cd42873b3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afe5f3dd79bf850625b0e330cd42873b3">&#9670;&nbsp;</a></span>computeTotalCostSwap()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T_INSTANCEIDX , typename T_DIST , typename T_CLUSTERIDX &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">T_DIST clusteringop::computeTotalCostSwap </td>
          <td>(</td>
          <td class="paramtype">const T_INSTANCEIDX&#160;</td>
          <td class="paramname"><em>aiuiidx_medoidRand</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const T_CLUSTERIDX *&#160;</td>
          <td class="paramname"><em>aiarraycidx_memberShip</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">T_INSTANCEIDX *&#160;</td>
          <td class="paramname"><em>aoarrayuiidx_medoids</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const T_CLUSTERIDX&#160;</td>
          <td class="paramname"><em>aicidx_numKMedoids</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classmat_1_1_matrix_triang.html">mat::MatrixTriang</a>&lt; T_DIST &gt; &amp;&#160;</td>
          <td class="paramname"><em>aimattriag_dissimilarity</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>computeTotalCostSwap </p>
<p>calculates the cost of changing a randomly selected medoid to a defined one </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">aiuiidx_medoidRand</td><td>an index of a randomly selected medoid to investigate if the cost improves </td></tr>
    <tr><td class="paramname">aiarraycidx_memberShip</td><td>an aioarraycidx_memberShip an array of indexes belonging to previously assigned or UNKNOWN_CLUSTER_IDX </td></tr>
    <tr><td class="paramname">aoarrayuiidx_medoids</td><td>an array of output with the indexes of the representative objects </td></tr>
    <tr><td class="paramname">aicidx_numKMedoids</td><td>cluster number </td></tr>
    <tr><td class="paramname">aimattriag_dissimilarity</td><td>a distance matrix </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="clustering__operator__medoids_8hpp_source.html#l00221">221</a> of file <a class="el" href="clustering__operator__medoids_8hpp_source.html">clustering_operator_medoids.hpp</a>.</p>

<p class="reference">References <a class="el" href="matrix__triangular_8hpp_source.html#l00128">mat::MatrixTriang&lt; T_FEATURE &gt;::getNumRows()</a>, and <a class="el" href="nearestinstance__operator_8hpp_source.html#l00325">nearest::medoidsNN()</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="namespaceclusteringop_afe5f3dd79bf850625b0e330cd42873b3_cgraph.svg" width="391" height="104"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>

</div>
</div>
<a id="a105a75742a54520f643812c0ad4f0598"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a105a75742a54520f643812c0ad4f0598">&#9670;&nbsp;</a></span>fillEmptyPartitions()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T_FEATURE , typename T_CLUSTERIDX , typename T_INSTANCE_FREQUENCY , typename T_INSTANCES_CLUSTER_K , typename T_FEATURE_SUM , typename T_DIST , typename INPUT_ITERATOR &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void clusteringop::fillEmptyPartitions </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classds_1_1_partition_linked_stats.html">ds::PartitionLinkedStats</a>&lt; T_FEATURE, T_CLUSTERIDX, T_INSTANCE_FREQUENCY, T_INSTANCES_CLUSTER_K, T_FEATURE_SUM &gt; &amp;&#160;</td>
          <td class="paramname"><em>aiopartlinkstats_partition</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classmat_1_1_matrix_resizable_row.html">mat::MatrixResizableRow</a>&lt; T_FEATURE, T_INSTANCES_CLUSTER_K &gt; &amp;&#160;</td>
          <td class="paramname"><em>aiomatrixresizerow_centroids</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const INPUT_ITERATOR&#160;</td>
          <td class="paramname"><em>aiiterator_instfirst</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const INPUT_ITERATOR&#160;</td>
          <td class="paramname"><em>aiiterator_instlast</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structdist_1_1_dist.html">dist::Dist</a>&lt; T_DIST, T_FEATURE &gt; &amp;&#160;</td>
          <td class="paramname"><em>aifunc2p_dist</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Fill empty partitions. </p>
<p>For each empty partition adds a new centroid </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">aiopartlinkstats_partition</td><td>a <a class="el" href="classds_1_1_partition_linked_stats.html" title="Partition with an array of membership.">ds::PartitionLinkedStats</a> to fill empty clusters </td></tr>
    <tr><td class="paramname">aiomatrixresizerow_centroids</td><td>a <a class="el" href="classmat_1_1_matrix_resizable_row.html" title="MatrixResizableRow .">mat::MatrixResizableRow</a> with the centroids of each cluster </td></tr>
    <tr><td class="paramname">aiiterator_instfirst</td><td>a input iterator of the instances </td></tr>
    <tr><td class="paramname">aiiterator_instlast</td><td>a const input iterator of the instances </td></tr>
    <tr><td class="paramname">aifunc2p_dist</td><td>an object of type <a class="el" href="structdist_1_1_dist.html" title="Generic dist.">dist::Dist</a> to calculate distances </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="clustering__operator__centroids_8hpp_source.html#l01760">1760</a> of file <a class="el" href="clustering__operator__centroids_8hpp_source.html">clustering_operator_centroids.hpp</a>.</p>

<p class="reference">References <a class="el" href="interface__level1_8hpp_source.html#l00069">interfacesse::copy()</a>, <a class="el" href="instance_8hpp_source.html#l00191">data::Instance&lt; T_FEATURE &gt;::getFeatures()</a>, <a class="el" href="instance__frequency_8hpp_source.html#l00100">data::InstanceFreq&lt; T_FEATURE, T_INSTANCE_FREQUENCY &gt;::getFrequency()</a>, <a class="el" href="instance_8hpp_source.html#l00145">data::Instance&lt; T_FEATURE &gt;::getNumDimensions()</a>, and <a class="el" href="stats__instances_8hpp_source.html#l00055">stats::meanVector()</a>.</p>

<p class="reference">Referenced by <a class="el" href="cbga__fkcentroid_8hpp_source.html#l00283">eac::iterateGLAAux()</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="namespaceclusteringop_a105a75742a54520f643812c0ad4f0598_cgraph.svg" width="100%" height="530"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
</div>

</div>
</div>
<a id="a3e298d769afd50e51d06baf8b1ca1a2f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3e298d769afd50e51d06baf8b1ca1a2f">&#9670;&nbsp;</a></span>fuzzyPartition()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename INPUT_ITERATOR , typename T_FEATURE , typename T_REAL &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmat_1_1_matrix_row.html">mat::MatrixRow</a>&lt; T_REAL &gt; clusteringop::fuzzyPartition </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmat_1_1_matrix_row.html">mat::MatrixRow</a>&lt; T_FEATURE &gt; &amp;&#160;</td>
          <td class="paramname"><em>aimatrixt_centroids</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">INPUT_ITERATOR&#160;</td>
          <td class="paramname"><em>aiiterator_instfirst</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const INPUT_ITERATOR&#160;</td>
          <td class="paramname"><em>aiiterator_instlast</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">T_REAL&#160;</td>
          <td class="paramname"><em>airt_m</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structdist_1_1_dist.html">dist::Dist</a>&lt; T_REAL, T_FEATURE &gt; &amp;&#160;</td>
          <td class="paramname"><em>aifunc2p_dist</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get a <img class="formulaInl" alt="$ U_{x \times n } = [u_{ji}] $" src="form_1.png"/> fuzzy c-partitions based on <a class="el" href="citelist.html#CITEREF_Bezdek:ClusterAnalysis:FCM:1974">[8]</a> <a class="el" href="citelist.html#CITEREF_Bezdek:etal:ClusterAnalysis:FCM:1984">[6]</a>. </p>
<p class="formulaDsp">
<img class="formulaDsp" alt="\[ u_{ji} = \left( \sum_{j=1}^k \left( \frac{ D(\mu_j'-x_i) }{ D(\mu_j-x_i) } \right)^{\frac{2}{m-1}} \right)^{-1} \]" src="form_2.png"/>
</p>
 <dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">aimatrixt_centroids</td><td>a <a class="el" href="classmat_1_1_matrix_row.html" title="Matrix store items for row.">mat::MatrixRow</a> with <img class="formulaInl" alt="$ \mu_j $" src="form_3.png"/> centroids of the clusters </td></tr>
    <tr><td class="paramname">aiiterator_instfirst</td><td>a InputIterator to the initial positions of the sequence of instances </td></tr>
    <tr><td class="paramname">aiiterator_instlast</td><td>an InputIterator to the final positions of the sequence of instances </td></tr>
    <tr><td class="paramname">airt_m</td><td>a real number with the <img class="formulaInl" alt="$ m $" src="form_4.png"/> weighting exponent </td></tr>
    <tr><td class="paramname">aifunc2p_dist</td><td>an object of type <a class="el" href="structdist_1_1_dist.html" title="Generic dist.">dist::Dist</a> square distance of preference </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="clustering__operator__fuzzy_8hpp_source.html#l00109">109</a> of file <a class="el" href="clustering__operator__fuzzy_8hpp_source.html">clustering_operator_fuzzy.hpp</a>.</p>

<p class="reference">References <a class="el" href="matrix__base_8hpp_source.html#l00076">mat::MatrixBase&lt; T_FEATURE &gt;::getNumRows()</a>, and <a class="el" href="matrix_8hpp_source.html#l00181">mat::MatrixRow&lt; T_FEATURE &gt;::getRow()</a>.</p>

<p class="reference">Referenced by <a class="el" href="main__gas__clustering_8cpp_source.html#l00198">main()</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="namespaceclusteringop_a3e298d769afd50e51d06baf8b1ca1a2f_cgraph.svg" width="448" height="88"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>

</div>
</div>
<a id="aee71048bdb18bb63b9d0e05f30e8c719"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aee71048bdb18bb63b9d0e05f30e8c719">&#9670;&nbsp;</a></span>getCentroids() <span class="overload">[1/3]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T_FEATURE , typename T_FEATURE_SUM , typename T_INSTANCES_CLUSTER_K , typename T_BITSIZE , typename T_CLUSTERIDX &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">T_CLUSTERIDX clusteringop::getCentroids </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmat_1_1_matrix_row.html">mat::MatrixRow</a>&lt; T_FEATURE &gt; &amp;&#160;</td>
          <td class="paramname"><em>aomatrixt_centroids</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classmat_1_1_matrix_row.html">mat::MatrixRow</a>&lt; T_FEATURE_SUM &gt; &amp;&#160;</td>
          <td class="paramname"><em>aomatrixt_sumInstancesCluster</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::vector&lt; T_INSTANCES_CLUSTER_K &gt; &amp;&#160;</td>
          <td class="paramname"><em>aovectort_numInstancesInClusterK</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classmat_1_1_crisp_matrix.html">mat::CrispMatrix</a>&lt; T_BITSIZE, T_CLUSTERIDX &gt; &amp;&#160;</td>
          <td class="paramname"><em>aicrispmatrix_partition</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classmat_1_1_matrix_row.html">mat::MatrixRow</a>&lt; T_FEATURE &gt; &amp;&#160;</td>
          <td class="paramname"><em>aimatrixt_instances</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Calculate centroids. </p>
<p>Calculate centroids from the Crisp Matrix partition. Returns the sum of instances and number of instances per cluster. Also the number and null clusters </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">aomatrixt_centroids</td><td>an output <a class="el" href="classmat_1_1_matrix_row.html" title="Matrix store items for row.">mat::MatrixRow</a> with centroids </td></tr>
    <tr><td class="paramname">aomatrixt_sumInstancesCluster</td><td>a <a class="el" href="classmat_1_1_matrix_row.html" title="Matrix store items for row.">mat::MatrixRow</a> with the sum of instances per cluster </td></tr>
    <tr><td class="paramname">aovectort_numInstancesInClusterK</td><td>a std::vector with the number of instances per cluster </td></tr>
    <tr><td class="paramname">aicrispmatrix_partition</td><td>an input <a class="el" href="classmat_1_1_crisp_matrix.html" title="Bit crisp matrix.">mat::CrispMatrix</a> partition of instances in clusters </td></tr>
    <tr><td class="paramname">aimatrixt_instances</td><td>an input <a class="el" href="classmat_1_1_matrix_row.html" title="Matrix store items for row.">mat::MatrixRow</a> with the instances </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="clustering__operator__crispmatrix_8hpp_source.html#l00202">202</a> of file <a class="el" href="clustering__operator__crispmatrix_8hpp_source.html">clustering_operator_crispmatrix.hpp</a>.</p>

<p class="reference">References <a class="el" href="bitmatrix__matrix__operator_8hpp_source.html#l00091">mat::bitgemm()</a>, <a class="el" href="interface__level1_8hpp_source.html#l00046">interfacesse::copya()</a>, <a class="el" href="matrix__base_8hpp_source.html#l00076">mat::MatrixBase&lt; T_FEATURE &gt;::getNumRows()</a>, <a class="el" href="bit__matrix_8hpp_source.html#l00551">mat::getRowsNumBitOn()</a>, <a class="el" href="matrix_8hpp_source.html#l00129">mat::MatrixRow&lt; T_FEATURE &gt;::initialize()</a>, <a class="el" href="clustering__operator__centroids_8hpp_source.html#l00066">meanCentroids()</a>, and <a class="el" href="matrix_8hpp_source.html#l00336">mat::MatrixRow&lt; T_FEATURE &gt;::print()</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="namespaceclusteringop_aee71048bdb18bb63b9d0e05f30e8c719_cgraph.svg" width="100%" height="600"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
</div>

</div>
</div>
<a id="a5f3b6f28e36f5e77ae6164da1d85ddc7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5f3b6f28e36f5e77ae6164da1d85ddc7">&#9670;&nbsp;</a></span>getCentroids() <span class="overload">[2/3]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T_REAL , typename T_FEATURE &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool clusteringop::getCentroids </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmat_1_1_matrix_row.html">mat::MatrixRow</a>&lt; T_FEATURE &gt; &amp;&#160;</td>
          <td class="paramname"><em>aomatrixt_centroids</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classmat_1_1_matrix_row.html">mat::MatrixRow</a>&lt; T_REAL &gt; &amp;&#160;</td>
          <td class="paramname"><em>aimatrixt_fuzzyPartition</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classmat_1_1_matrix_row.html">mat::MatrixRow</a>&lt; T_FEATURE &gt; &amp;&#160;</td>
          <td class="paramname"><em>aimatrixt_instances</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">T_REAL&#160;</td>
          <td class="paramname"><em>ait_m</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classmat_1_1_matrix_row.html">mat::MatrixRow</a>&lt; T_REAL &gt; &amp;&#160;</td>
          <td class="paramname"><em>aimatrixrowt_work</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="clustering__operator__fuzzy_8hpp_source.html#l00226">226</a> of file <a class="el" href="clustering__operator__fuzzy_8hpp_source.html">clustering_operator_fuzzy.hpp</a>.</p>

<p class="reference">References <a class="el" href="common__interfacelapack_8hpp_source.html#l00025">mat::CblasNoTrans</a>, <a class="el" href="interface__level2_8hpp_source.html#l00074">interfacesse::gemm()</a>, <a class="el" href="matrix__base_8hpp_source.html#l00081">mat::MatrixBase&lt; T_FEATURE &gt;::getNumColumns()</a>, <a class="el" href="matrix__base_8hpp_source.html#l00086">mat::MatrixBase&lt; T_FEATURE &gt;::getNumElems()</a>, <a class="el" href="matrix__base_8hpp_source.html#l00076">mat::MatrixBase&lt; T_FEATURE &gt;::getNumRows()</a>, <a class="el" href="matrix_8hpp_source.html#l00181">mat::MatrixRow&lt; T_FEATURE &gt;::getRow()</a>, <a class="el" href="matrix_8hpp_source.html#l00336">mat::MatrixRow&lt; T_FEATURE &gt;::print()</a>, <a class="el" href="interface__level1_8hpp_source.html#l00276">interfacesse::scal()</a>, <a class="el" href="interface__level1_8hpp_source.html#l00135">interfacesse::sum()</a>, and <a class="el" href="matrix_8hpp_source.html#l00119">mat::MatrixRow&lt; T_FEATURE &gt;::toArray()</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="namespaceclusteringop_a5f3b6f28e36f5e77ae6164da1d85ddc7_cgraph.svg" width="100%" height="600"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
</div>

</div>
</div>
<a id="ac52fbdbee047ca93bef1426d6493f31f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac52fbdbee047ca93bef1426d6493f31f">&#9670;&nbsp;</a></span>getCentroids() <span class="overload">[3/3]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T_FEATURE , typename T_FEATURE_SUM , typename T_INSTANCES_CLUSTER_K , typename T_CLUSTERIDX , typename INPUT_ITERATOR &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">T_CLUSTERIDX clusteringop::getCentroids </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmat_1_1_matrix_row.html">mat::MatrixRow</a>&lt; T_FEATURE &gt; &amp;&#160;</td>
          <td class="paramname"><em>aomatrixt_centroids</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classmat_1_1_matrix_row.html">mat::MatrixRow</a>&lt; T_FEATURE_SUM &gt; &amp;&#160;</td>
          <td class="paramname"><em>aomatrixt_sumInstancesCluster</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::vector&lt; T_INSTANCES_CLUSTER_K &gt; &amp;&#160;</td>
          <td class="paramname"><em>aovectort_numInstancesInClusterK</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classpartition_1_1_partition.html">partition::Partition</a>&lt; T_CLUSTERIDX &gt; &amp;&#160;</td>
          <td class="paramname"><em>aipartition_clusters</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">INPUT_ITERATOR&#160;</td>
          <td class="paramname"><em>aiiterator_instfirst</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const INPUT_ITERATOR&#160;</td>
          <td class="paramname"><em>aiiterator_instlast</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="clustering__operator__centroids_8hpp_source.html#l00608">608</a> of file <a class="el" href="clustering__operator__centroids_8hpp_source.html">clustering_operator_centroids.hpp</a>.</p>

<p class="reference">References <a class="el" href="interface__level1_8hpp_source.html#l00156">interfacesse::axpy()</a>, <a class="el" href="classpartition_1_1_partition.html#acb8de7c890e05872858fb7a7aa53b657">partition::Partition&lt; T_CLUSTERIDX &gt;::begin()</a>, <a class="el" href="container__out_8hpp_source.html#l00050">inout::containerprint()</a>, <a class="el" href="interface__level1_8hpp_source.html#l00046">interfacesse::copya()</a>, <a class="el" href="classpartition_1_1_partition.html#a4a440dcaeb42e05a52a46405eb30d36e">partition::Partition&lt; T_CLUSTERIDX &gt;::getNumCluster()</a>, <a class="el" href="matrix__base_8hpp_source.html#l00081">mat::MatrixBase&lt; T_FEATURE &gt;::getNumColumns()</a>, <a class="el" href="matrix__base_8hpp_source.html#l00076">mat::MatrixBase&lt; T_FEATURE &gt;::getNumRows()</a>, <a class="el" href="matrix_8hpp_source.html#l00181">mat::MatrixRow&lt; T_FEATURE &gt;::getRow()</a>, <a class="el" href="matrix_8hpp_source.html#l00129">mat::MatrixRow&lt; T_FEATURE &gt;::initialize()</a>, <a class="el" href="stats__instances_8hpp_source.html#l00055">stats::meanVector()</a>, <a class="el" href="classpartition_1_1_partition.html#a96660ce61740ab0287189b21833eccdf">partition::Partition&lt; T_CLUSTERIDX &gt;::next()</a>, and <a class="el" href="matrix_8hpp_source.html#l00336">mat::MatrixRow&lt; T_FEATURE &gt;::print()</a>.</p>

<p class="reference">Referenced by <a class="el" href="clustering__vksubclusterbinary_8hpp_source.html#l00937">eac::clustering_vksubclusterbinary()</a>, <a class="el" href="ga__clustering__operator_8hpp_source.html#l00690">gaclusteringop::crossoverCGA()</a>, <a class="el" href="gaclustering__fkcrispmatrix_8hpp_source.html#l00069">eac::gaclustering_fkcrispmatrix()</a>, <a class="el" href="gaclustering__fklabel_8hpp_source.html#l00067">eac::gaclustering_fklabel()</a>, <a class="el" href="gaclustering__vktreebinary_8hpp_source.html#l00070">eac::gaclustering_vktreebinary()</a>, <a class="el" href="gga__vklabel_8hpp_source.html#l00073">eac::gga_vklabel()</a>, <a class="el" href="gka__fklabel_8hpp_source.html#l00067">eac::gka_fklabel()</a>, <a class="el" href="igka__fklabel_8hpp_source.html#l00080">eac::igka_fklabel()</a>, <a class="el" href="chromosome__igka_8hpp_source.html#l00220">gaencode::ChromosomeIGKA&lt; T_CLUSTERIDX, T_METRIC, T_FEATURE, T_FEATURE_SUM, T_INSTANCES_CLUSTER_K &gt;::initialize()</a>, <a class="el" href="clustering__operator__centroids_8hpp_source.html#l01283">kmeansoperator()</a>, <a class="el" href="main__gas__clustering_8cpp_source.html#l00198">main()</a>, <a class="el" href="ga__clustering__operator_8hpp_source.html#l01898">gaclusteringop::MO1()</a>, <a class="el" href="ga__integer__operator_8hpp_source.html#l00587">gaintegerop::mutationgka()</a>, and <a class="el" href="tgca__vkcentroid_8hpp_source.html#l00176">eac::tgca_vkcentroid()</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="namespaceclusteringop_ac52fbdbee047ca93bef1426d6493f31f_cgraph.svg" width="100%" height="600"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
</div>

</div>
</div>
<a id="ad049486ebab197e0041b0f9f36b2b30b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad049486ebab197e0041b0f9f36b2b30b">&#9670;&nbsp;</a></span>getClusters()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T_BITSIZE , typename T_FEATURE , typename T_INSTANCES_CLUSTER_K , typename T_CLUSTERIDX , typename T_REAL &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">std::tuple&lt;<a class="el" href="classmat_1_1_matrix_row.html">mat::MatrixRow</a>&lt;T_FEATURE&gt;, <a class="el" href="classpartition_1_1_partition_disj_sets.html">partition::PartitionDisjSets</a>&lt;T_CLUSTERIDX&gt;, std::vector&lt;T_INSTANCES_CLUSTER_K&gt; &gt; clusteringop::getClusters </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmat_1_1_bit_array.html">mat::BitArray</a>&lt; T_BITSIZE &gt; &amp;&#160;</td>
          <td class="paramname"><em>aibirarray_clusterSeedIdx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classmat_1_1_matrix_row.html">mat::MatrixRow</a>&lt; T_FEATURE &gt; &amp;&#160;</td>
          <td class="paramname"><em>aimatrixrowt_Vi</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::vector&lt; T_INSTANCES_CLUSTER_K &gt; &amp;&#160;</td>
          <td class="paramname"><em>aivectort_numInstBi</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structdist_1_1_dist.html">dist::Dist</a>&lt; T_REAL, T_FEATURE &gt; &amp;&#160;</td>
          <td class="paramname"><em>aifunc2p_dist</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const T_CLUSTERIDX&#160;</td>
          <td class="paramname"><em>aiit_datatypeClusterIdx</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="clustering__operator__centroids_8hpp_source.html#l00750">750</a> of file <a class="el" href="clustering__operator__centroids_8hpp_source.html">clustering_operator_centroids.hpp</a>.</p>

<p class="reference">References <a class="el" href="interface__level1_8hpp_source.html#l00156">interfacesse::axpy()</a>, <a class="el" href="bit__container_8hpp_source.html#l00224">ds::BitContainer&lt; T_BITSIZE &gt;::getBit()</a>, <a class="el" href="bit__container_8hpp_source.html#l00230">ds::BitContainer&lt; T_BITSIZE &gt;::getNumBitOn()</a>, <a class="el" href="instance_8hpp_source.html#l00145">data::Instance&lt; T_FEATURE &gt;::getNumDimensions()</a>, <a class="el" href="matrix__base_8hpp_source.html#l00076">mat::MatrixBase&lt; T_FEATURE &gt;::getNumRows()</a>, <a class="el" href="matrix_8hpp_source.html#l00181">mat::MatrixRow&lt; T_FEATURE &gt;::getRow()</a>, <a class="el" href="nearestinstance__operator_8hpp_source.html#l00192">nearest::NN()</a>, <a class="el" href="bit__array_8hpp_source.html#l00123">mat::BitArray&lt; T_BITSIZE &gt;::print()</a>, <a class="el" href="matrix_8hpp_source.html#l00336">mat::MatrixRow&lt; T_FEATURE &gt;::print()</a>, <a class="el" href="interface__level1_8hpp_source.html#l00276">interfacesse::scal()</a>, <a class="el" href="interface__level1_8hpp_source.html#l00328">interfacesse::scalInv()</a>, and <a class="el" href="bit__array_8hpp_source.html#l00117">mat::BitArray&lt; T_BITSIZE &gt;::size()</a>.</p>

<p class="reference">Referenced by <a class="el" href="clustering__vksubclusterbinary_8hpp_source.html#l00072">eac::clustering_genetic()</a>, <a class="el" href="clustering__vksubclusterbinary_8hpp_source.html#l00937">eac::clustering_vksubclusterbinary()</a>, and <a class="el" href="main__gas__clustering_8cpp_source.html#l00198">main()</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="namespaceclusteringop_ad049486ebab197e0041b0f9f36b2b30b_cgraph.svg" width="100%" height="600"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
</div>

</div>
</div>
<a id="afc2da46808bfd8a24341691978679c18"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afc2da46808bfd8a24341691978679c18">&#9670;&nbsp;</a></span>getPartition()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T_FEATURE , typename T_CLUSTERIDX , typename T_BITSIZE , typename T_DIST &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void clusteringop::getPartition </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmat_1_1_crisp_matrix.html">mat::CrispMatrix</a>&lt; T_BITSIZE, T_CLUSTERIDX &gt; &amp;&#160;</td>
          <td class="paramname"><em>aobcrispmatrix_partition</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classmat_1_1_matrix_row.html">mat::MatrixRow</a>&lt; T_FEATURE &gt; &amp;&#160;</td>
          <td class="paramname"><em>aimatrixt_instances</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classmat_1_1_matrix_row.html">mat::MatrixRow</a>&lt; T_FEATURE &gt; &amp;&#160;</td>
          <td class="paramname"><em>aimatrixt_centroids</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structdist_1_1_dist.html">dist::Dist</a>&lt; T_DIST, T_FEATURE &gt; &amp;&#160;</td>
          <td class="paramname"><em>aifunc2p_dist</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get partition. </p>
<p>Calculate a partition crisp matrix partition with the nearest neighbor rule. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">aobcrispmatrix_partition</td><td>an output <a class="el" href="classmat_1_1_crisp_matrix.html" title="Bit crisp matrix.">mat::CrispMatrix</a> partition of instances in clusters. </td></tr>
    <tr><td class="paramname">aimatrixt_instances</td><td>an input <a class="el" href="classmat_1_1_matrix_row.html" title="Matrix store items for row.">mat::MatrixRow</a> with the instances </td></tr>
    <tr><td class="paramname">aimatrixt_centroids</td><td>an input <a class="el" href="classmat_1_1_matrix_row.html" title="Matrix store items for row.">mat::MatrixRow</a> with centroids </td></tr>
    <tr><td class="paramname">aifunc2p_dist</td><td>an object of type <a class="el" href="structdist_1_1_dist.html" title="Generic dist.">dist::Dist</a> to calculate distances </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="clustering__operator__crispmatrix_8hpp_source.html#l00292">292</a> of file <a class="el" href="clustering__operator__crispmatrix_8hpp_source.html">clustering_operator_crispmatrix.hpp</a>.</p>

<p class="reference">References <a class="el" href="matrix__base_8hpp_source.html#l00076">mat::MatrixBase&lt; T_FEATURE &gt;::getNumRows()</a>, <a class="el" href="matrix_8hpp_source.html#l00181">mat::MatrixRow&lt; T_FEATURE &gt;::getRow()</a>, <a class="el" href="nearestinstance__operator_8hpp_source.html#l00192">nearest::NN()</a>, <a class="el" href="bit__matrix_8hpp_source.html#l00463">mat::BitMatrix&lt; T_BITSIZE &gt;::print()</a>, and <a class="el" href="crisp__matrix_8hpp_source.html#l00109">mat::CrispMatrix&lt; T_BITSIZE, T_CLUSTERIDX &gt;::setMember()</a>.</p>

<p class="reference">Referenced by <a class="el" href="gaclustering__fkcrispmatrix_8hpp_source.html#l00069">eac::gaclustering_fkcrispmatrix()</a>, and <a class="el" href="gaprototypes__fkmedoid_8hpp_source.html#l00069">eac::gaprototypes_fkmedoid()</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="namespaceclusteringop_afc2da46808bfd8a24341691978679c18_cgraph.svg" width="100%" height="600"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
</div>

</div>
</div>
<a id="a44a4fb40b11fb73247f3efad50d19183"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a44a4fb40b11fb73247f3efad50d19183">&#9670;&nbsp;</a></span>initialize()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T_FEATURE , typename INPUT_ITERATOR_IDX , typename INPUT_ITERATOR &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void clusteringop::initialize </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmat_1_1_matrix_base.html">mat::MatrixBase</a>&lt; T_FEATURE &gt; &amp;&#160;</td>
          <td class="paramname"><em>aomatrixt_centroids</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const INPUT_ITERATOR&#160;</td>
          <td class="paramname"><em>aiiterator_instfirst</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">INPUT_ITERATOR_IDX&#160;</td>
          <td class="paramname"><em>aiiterator_idxInstanceRandFirst</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="clustering__operator__centroids_8hpp_source.html#l00136">136</a> of file <a class="el" href="clustering__operator__centroids_8hpp_source.html">clustering_operator_centroids.hpp</a>.</p>

<p class="reference">References <a class="el" href="interface__level1_8hpp_source.html#l00069">interfacesse::copy()</a>, <a class="el" href="instance_8hpp_source.html#l00191">data::Instance&lt; T_FEATURE &gt;::getFeatures()</a>, <a class="el" href="instance_8hpp_source.html#l00145">data::Instance&lt; T_FEATURE &gt;::getNumDimensions()</a>, <a class="el" href="matrix__base_8hpp_source.html#l00076">mat::MatrixBase&lt; T_FEATURE &gt;::getNumRows()</a>, <a class="el" href="classmat_1_1_matrix_base.html#ae3b1c4b8e9cb7e7685d7bc129f875dcd">mat::MatrixBase&lt; T_FEATURE &gt;::getRow()</a>, and <a class="el" href="classmat_1_1_matrix_base.html#a4cdb6c084f99e4aec0373760c093ee11">mat::MatrixBase&lt; T_FEATURE &gt;::print()</a>.</p>

<p class="reference">Referenced by <a class="el" href="instances__read_8hpp_source.html#l00922">inout::dataSetRead()</a>, <a class="el" href="instances__read_8hpp_source.html#l01006">inout::dataSetReadWithFreq()</a>, <a class="el" href="gaprototypes__fkmedoid_8hpp_source.html#l00069">eac::gaprototypes_fkmedoid()</a>, and <a class="el" href="main__gas__clustering_8cpp_source.html#l00198">main()</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="namespaceclusteringop_a44a4fb40b11fb73247f3efad50d19183_cgraph.svg" width="442" height="291"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>

</div>
</div>
<a id="aac57c8e9f6d44fecb10a2a0855accb76"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aac57c8e9f6d44fecb10a2a0855accb76">&#9670;&nbsp;</a></span>initializeOptimal()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T_BITSIZE , typename T_CLUSTERIDX , typename INPUT_ITERATOR , typename FUNCTION_INSTCLASS &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void clusteringop::initializeOptimal </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmat_1_1_crisp_matrix.html">mat::CrispMatrix</a>&lt; T_BITSIZE, T_CLUSTERIDX &gt; &amp;&#160;</td>
          <td class="paramname"><em>aiocrispmatrix_partition</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">INPUT_ITERATOR&#160;</td>
          <td class="paramname"><em>aiiterator_instfirst</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const INPUT_ITERATOR&#160;</td>
          <td class="paramname"><em>aiiterator_instlast</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">FUNCTION_INSTCLASS&#160;</td>
          <td class="paramname"><em>function_instClass</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="clustering__operator__crispmatrix_8hpp_source.html#l00127">127</a> of file <a class="el" href="clustering__operator__crispmatrix_8hpp_source.html">clustering_operator_crispmatrix.hpp</a>.</p>

<p class="reference">References <a class="el" href="bit__matrix_8hpp_source.html#l00129">mat::BitMatrix&lt; T_BITSIZE &gt;::initialize()</a>, <a class="el" href="bit__matrix_8hpp_source.html#l00463">mat::BitMatrix&lt; T_BITSIZE &gt;::print()</a>, and <a class="el" href="bit__matrix_8hpp_source.html#l00170">mat::BitMatrix&lt; T_BITSIZE &gt;::setBit()</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="namespaceclusteringop_aac57c8e9f6d44fecb10a2a0855accb76_cgraph.svg" width="627" height="139"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>

</div>
</div>
<a id="a085fe038ee0b6d313db259ac1b61cafb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a085fe038ee0b6d313db259ac1b61cafb">&#9670;&nbsp;</a></span>joinPartition()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T_FEATURE , typename T_CLUSTERIDX , typename T_INSTANCE_FREQUENCY , typename T_INSTANCES_CLUSTER_K , typename T_FEATURE_SUM , typename INPUT_ITERATOR &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void clusteringop::joinPartition </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classds_1_1_partition_linked_stats.html">ds::PartitionLinkedStats</a>&lt; T_FEATURE, T_CLUSTERIDX, T_INSTANCE_FREQUENCY, T_INSTANCES_CLUSTER_K, T_FEATURE_SUM &gt; &amp;&#160;</td>
          <td class="paramname"><em>aoipartlinkstats_partition</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const T_CLUSTERIDX&#160;</td>
          <td class="paramname"><em>aicidx_partitionFrom</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const T_CLUSTERIDX&#160;</td>
          <td class="paramname"><em>aicidx_partitionTo</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const INPUT_ITERATOR&#160;</td>
          <td class="paramname"><em>aiiterator_instfirst</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="clustering__operator__centroids_8hpp_source.html#l01649">1649</a> of file <a class="el" href="clustering__operator__centroids_8hpp_source.html">clustering_operator_centroids.hpp</a>.</p>

<p class="reference">References <a class="el" href="partition__linked_8hpp_source.html#l00372">ds::IteratorPartitionLinked&lt; T_CLUSTERIDX &gt;::begin()</a>, <a class="el" href="partition__linked_8hpp_source.html#l00384">ds::IteratorPartitionLinked&lt; T_CLUSTERIDX &gt;::end()</a>, <a class="el" href="instance_8hpp_source.html#l00191">data::Instance&lt; T_FEATURE &gt;::getFeatures()</a>, <a class="el" href="instance__frequency_8hpp_source.html#l00100">data::InstanceFreq&lt; T_FEATURE, T_INSTANCE_FREQUENCY &gt;::getFrequency()</a>, <a class="el" href="partition__linked_8hpp_source.html#l00389">ds::IteratorPartitionLinked&lt; T_CLUSTERIDX &gt;::getValue()</a>, <a class="el" href="partition__linked_8hpp_source.html#l00378">ds::IteratorPartitionLinked&lt; T_CLUSTERIDX &gt;::next()</a>, <a class="el" href="instance__frequency_8hpp_source.html#l00105">data::InstanceFreq&lt; T_FEATURE, T_INSTANCE_FREQUENCY &gt;::print()</a>, and <a class="el" href="common_8hpp_source.html#l00025">UINTIDX_NIL</a>.</p>

<p class="reference">Referenced by <a class="el" href="clustering__operator__centroids_8hpp_source.html#l02044">pnnFast()</a>, and <a class="el" href="clustering__operator__centroids_8hpp_source.html#l01949">removeEmptyPartitions()</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="namespaceclusteringop_a085fe038ee0b6d313db259ac1b61cafb_cgraph.svg" width="622" height="416"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>

</div>
</div>
<a id="adcc8e46fcc27f73c5a683d7f509d03d5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adcc8e46fcc27f73c5a683d7f509d03d5">&#9670;&nbsp;</a></span>kmeansoperator()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T_CLUSTERIDX , typename T_FEATURE , typename T_FEATURE_SUM , typename T_INSTANCES_CLUSTER_K , typename T_DIST , typename INPUT_ITERATOR &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">T_CLUSTERIDX clusteringop::kmeansoperator </td>
          <td>(</td>
          <td class="paramtype">T_CLUSTERIDX *&#160;</td>
          <td class="paramname"><em>aioarraycidx_memberShip</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classmat_1_1_matrix_row.html">mat::MatrixRow</a>&lt; T_FEATURE &gt; &amp;&#160;</td>
          <td class="paramname"><em>aomatrixt_centroids</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classmat_1_1_matrix_row.html">mat::MatrixRow</a>&lt; T_FEATURE_SUM &gt; &amp;&#160;</td>
          <td class="paramname"><em>aomatrixt_sumInstancesCluster</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::vector&lt; T_INSTANCES_CLUSTER_K &gt; &amp;&#160;</td>
          <td class="paramname"><em>aovectort_numInstancesInClusterK</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">INPUT_ITERATOR&#160;</td>
          <td class="paramname"><em>aiiterator_instfirst</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const INPUT_ITERATOR&#160;</td>
          <td class="paramname"><em>aiiterator_instlast</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structdist_1_1_dist.html">dist::Dist</a>&lt; T_DIST, T_FEATURE &gt; &amp;&#160;</td>
          <td class="paramname"><em>aifunc2p_dist</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>K-Means Operator <a class="el" href="citelist.html#CITEREF_Krishna:Murty:GAClustering:GKA:1999">[26]</a>. </p>
<p>For the given partition in an array of labels, it performs an update using the k-means algorithm. Returns the membership tags, centroids, sum of instances and number of instances in each cluster. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">aioarraycidx_memberShip</td><td>an array with the labels belong to the cluster </td></tr>
    <tr><td class="paramname">aomatrixt_centroids</td><td>a <a class="el" href="classmat_1_1_matrix_row.html" title="Matrix store items for row.">mat::MatrixRow</a> with the centroids of each cluster </td></tr>
    <tr><td class="paramname">aomatrixt_sumInstancesCluster</td><td>a mat::MatrixRow&lt;T_FEATURE_SUM&gt; </td></tr>
    <tr><td class="paramname">aovectort_numInstancesInClusterK</td><td>a std::vector&lt;T_INSTANCES_CLUSTER_K&gt;</td></tr>
    <tr><td class="paramname">aiiterator_instfirst</td><td>a InputIterator to the initial positions of the sequence of instances </td></tr>
    <tr><td class="paramname">aiiterator_instlast</td><td>a InputIterator to the final positions of the sequence of instances </td></tr>
    <tr><td class="paramname">aifunc2p_dist</td><td>an object of type <a class="el" href="structdist_1_1_dist.html" title="Generic dist.">dist::Dist</a> to calculate distances </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="clustering__operator__centroids_8hpp_source.html#l01283">1283</a> of file <a class="el" href="clustering__operator__centroids_8hpp_source.html">clustering_operator_centroids.hpp</a>.</p>

<p class="reference">References <a class="el" href="container__out_8hpp_source.html#l00050">inout::containerprint()</a>, <a class="el" href="clustering__operator__centroids_8hpp_source.html#l00608">getCentroids()</a>, <a class="el" href="matrix__base_8hpp_source.html#l00076">mat::MatrixBase&lt; T_FEATURE &gt;::getNumRows()</a>, and <a class="el" href="clustering__operator__centroids_8hpp_source.html#l00421">reassignCluster()</a>.</p>

<p class="reference">Referenced by <a class="el" href="igka__fklabel_8hpp_source.html#l00080">eac::igka_fklabel()</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="namespaceclusteringop_adcc8e46fcc27f73c5a683d7f509d03d5_cgraph.svg" width="100%" height="600"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
</div>

</div>
</div>
<a id="ab64951784015cb55d4b8a32993255713"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab64951784015cb55d4b8a32993255713">&#9670;&nbsp;</a></span>meanCentroids()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T_CENTROIDS , typename T_FEATURE_SUM , typename T_INSTANCES_CLUSTER_K , typename T_CLUSTERIDX &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void clusteringop::meanCentroids </td>
          <td>(</td>
          <td class="paramtype">T_CLUSTERIDX &amp;&#160;</td>
          <td class="paramname"><em>aocidx_numClusterNull</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classmat_1_1_matrix_base.html">mat::MatrixBase</a>&lt; T_CENTROIDS &gt; &amp;&#160;</td>
          <td class="paramname"><em>aomatrixt_meanCentroids</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classmat_1_1_matrix_base.html">mat::MatrixBase</a>&lt; T_FEATURE_SUM &gt; &amp;&#160;</td>
          <td class="paramname"><em>aimatrixtrowt_sumInstancesClusterK</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::vector&lt; T_INSTANCES_CLUSTER_K &gt; &amp;&#160;</td>
          <td class="paramname"><em>aovectort_numInstClusterK</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="clustering__operator__centroids_8hpp_source.html#l00066">66</a> of file <a class="el" href="clustering__operator__centroids_8hpp_source.html">clustering_operator_centroids.hpp</a>.</p>

<p class="reference">References <a class="el" href="matrix__base_8hpp_source.html#l00076">mat::MatrixBase&lt; T_FEATURE &gt;::getNumRows()</a>, <a class="el" href="classmat_1_1_matrix_base.html#ae3b1c4b8e9cb7e7685d7bc129f875dcd">mat::MatrixBase&lt; T_FEATURE &gt;::getRow()</a>, <a class="el" href="stats__instances_8hpp_source.html#l00055">stats::meanVector()</a>, and <a class="el" href="classmat_1_1_matrix_base.html#a4cdb6c084f99e4aec0373760c093ee11">mat::MatrixBase&lt; T_FEATURE &gt;::print()</a>.</p>

<p class="reference">Referenced by <a class="el" href="clustering__operator__crispmatrix_8hpp_source.html#l00202">getCentroids()</a>, <a class="el" href="igka__fklabel_8hpp_source.html#l00080">eac::igka_fklabel()</a>, <a class="el" href="cbga__fkcentroid_8hpp_source.html#l00283">eac::iterateGLAAux()</a>, <a class="el" href="chromosome__cbga_8hpp_source.html#l00263">gaencode::ChromosomeCBGA&lt; T_FEATURE, T_CLUSTERIDX, T_INSTANCE_FREQUENCY, T_INSTANCES_CLUSTER_K, T_FEATURE_SUM, T_REAL &gt;::optimalCodebook()</a>, <a class="el" href="clustering__operator__centroids_8hpp_source.html#l01040">updateCentroids()</a>, and <a class="el" href="clustering__operator__centroids_8hpp_source.html#l01134">updateClusterCj()</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="namespaceclusteringop_ab64951784015cb55d4b8a32993255713_cgraph.svg" width="659" height="190"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>

</div>
</div>
<a id="a9811c142c169af0321631f773797089c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9811c142c169af0321631f773797089c">&#9670;&nbsp;</a></span>nearestRepresentative() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T_INSTANCEIDX , typename T_DIST , typename T_CLUSTERIDX &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">std::tuple&lt; T_DIST, <a class="el" href="classds_1_1_partition_linked.html">ds::PartitionLinked</a>&lt; T_CLUSTERIDX &gt; &gt; clusteringop::nearestRepresentative </td>
          <td>(</td>
          <td class="paramtype">T_INSTANCEIDX *&#160;</td>
          <td class="paramname"><em>aioarrayui_idxMedoids</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">T_CLUSTERIDX&#160;</td>
          <td class="paramname"><em>aicidx_numKMedoids</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classmat_1_1_matrix_triang.html">mat::MatrixTriang</a>&lt; T_DIST &gt; &amp;&#160;</td>
          <td class="paramname"><em>aimattriag_dissimilarity</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>nearestRepresentative </p>
<p>Assign each instance to a closer group and calculate the sum of the distances of each Medoid mj with its instances </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">aioarrayui_idxMedoids</td><td>an array with the indexes of the representative objects initially </td></tr>
    <tr><td class="paramname">aicidx_numKMedoids</td><td>cluster number </td></tr>
    <tr><td class="paramname">aimattriag_dissimilarity</td><td>a distance matrix </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="clustering__operator__medoids_8hpp_source.html#l00047">47</a> of file <a class="el" href="clustering__operator__medoids_8hpp_source.html">clustering_operator_medoids.hpp</a>.</p>

<p class="reference">References <a class="el" href="matrix__triangular_8hpp_source.html#l00128">mat::MatrixTriang&lt; T_FEATURE &gt;::getNumRows()</a>, and <a class="el" href="nearestinstance__operator_8hpp_source.html#l00325">nearest::medoidsNN()</a>.</p>

<p class="reference">Referenced by <a class="el" href="clustering__operator__medoids_8hpp_source.html#l00389">updateMedoids()</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="namespaceclusteringop_a9811c142c169af0321631f773797089c_cgraph.svg" width="443" height="104"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>

</div>
</div>
<a id="a53d2b1e72d462871d3fdfb52f3ece4a4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a53d2b1e72d462871d3fdfb52f3ece4a4">&#9670;&nbsp;</a></span>nearestRepresentative() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T_INSTANCEIDX , typename T_DIST , typename T_CLUSTERIDX &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">std::pair&lt; T_DIST, T_INSTANCEIDX &gt; clusteringop::nearestRepresentative </td>
          <td>(</td>
          <td class="paramtype">T_CLUSTERIDX *&#160;</td>
          <td class="paramname"><em>aoarraycidx_memberShip</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const T_INSTANCEIDX *&#160;</td>
          <td class="paramname"><em>aioarrayui_idxMedoids</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const T_CLUSTERIDX&#160;</td>
          <td class="paramname"><em>aicidx_numKMedoids</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classmat_1_1_matrix_triang.html">mat::MatrixTriang</a>&lt; T_DIST &gt; &amp;&#160;</td>
          <td class="paramname"><em>aimattriag_dissimilarity</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>nearestRepresentative <a class="el" href="citelist.html#CITEREF_Kaufman:Rousseeuw:Book:ClusterAnalysis:1990">[25]</a> </p>
<p>Assign each instance to a closer group and calculate the sum of the distances of each Medoid mj with its instances </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">aoarraycidx_memberShip</td><td>an array of out with the labels belong to the cluster </td></tr>
    <tr><td class="paramname">aioarrayui_idxMedoids</td><td>an array of input with the indexes of the representative objects </td></tr>
    <tr><td class="paramname">aicidx_numKMedoids</td><td>cluster number </td></tr>
    <tr><td class="paramname">aimattriag_dissimilarity</td><td>a distance matrix </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="clustering__operator__medoids_8hpp_source.html#l00131">131</a> of file <a class="el" href="clustering__operator__medoids_8hpp_source.html">clustering_operator_medoids.hpp</a>.</p>

<p class="reference">References <a class="el" href="container__out_8hpp_source.html#l00050">inout::containerprint()</a>, <a class="el" href="matrix__triangular_8hpp_source.html#l00128">mat::MatrixTriang&lt; T_FEATURE &gt;::getNumRows()</a>, and <a class="el" href="nearestinstance__operator_8hpp_source.html#l00325">nearest::medoidsNN()</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="namespaceclusteringop_a53d2b1e72d462871d3fdfb52f3ece4a4_cgraph.svg" width="443" height="155"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>

</div>
</div>
<a id="a8dda4c828d8ffde2aff08eb40dc35190"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8dda4c828d8ffde2aff08eb40dc35190">&#9670;&nbsp;</a></span>pnnFast()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T_FEATURE , typename T_CLUSTERIDX , typename T_INSTANCE_FREQUENCY , typename T_INSTANCES_CLUSTER_K , typename T_FEATURE_SUM , typename T_DIST , typename INPUT_ITERATOR &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void clusteringop::pnnFast </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classds_1_1_partition_linked_stats.html">ds::PartitionLinkedStats</a>&lt; T_FEATURE, T_CLUSTERIDX, T_INSTANCE_FREQUENCY, T_INSTANCES_CLUSTER_K, T_FEATURE_SUM &gt; &amp;&#160;</td>
          <td class="paramname"><em>aoipartlinkstats_partition</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classmat_1_1_matrix_resizable_row.html">mat::MatrixResizableRow</a>&lt; T_FEATURE, T_INSTANCES_CLUSTER_K &gt; &amp;&#160;</td>
          <td class="paramname"><em>aiomatrixresizerow_centroids</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">INPUT_ITERATOR&#160;</td>
          <td class="paramname"><em>aiiterator_instfirst</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const INPUT_ITERATOR&#160;</td>
          <td class="paramname"><em>aiiterator_instlast</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const T_CLUSTERIDX&#160;</td>
          <td class="paramname"><em>aicidx_numclusterKToReduce</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structdist_1_1_dist.html">dist::Dist</a>&lt; T_DIST, T_FEATURE &gt; &amp;&#160;</td>
          <td class="paramname"><em>aifunc2p_dist</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="clustering__operator__centroids_8hpp_source.html#l02044">2044</a> of file <a class="el" href="clustering__operator__centroids_8hpp_source.html">clustering_operator_centroids.hpp</a>.</p>

<p class="reference">References <a class="el" href="nearestcentroids__operator_8hpp_source.html#l00438">nearest::deleteNearestCentroid()</a>, <a class="el" href="nearestcentroids__operator_8hpp_source.html#l00191">nearest::findAllPairCentroidsClosest()</a>, <a class="el" href="nearestcentroids__operator_8hpp_source.html#l00334">nearest::findNearestCentroids()</a>, <a class="el" href="clustering__operator__centroids_8hpp_source.html#l01649">joinPartition()</a>, <a class="el" href="nearestcentroids__operator_8hpp_source.html#l00377">nearest::markRecalculationNearest()</a>, <a class="el" href="nearestcentroids__operator_8hpp_source.html#l00261">nearest::recalculateDistNearestCentroids()</a>, and <a class="el" href="clustering__operator__centroids_8hpp_source.html#l01949">removeEmptyPartitions()</a>.</p>

<p class="reference">Referenced by <a class="el" href="ga__clustering__operator_8hpp_source.html#l00339">gaclusteringop::crossPNNnew()</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="namespaceclusteringop_a8dda4c828d8ffde2aff08eb40dc35190_cgraph.svg" width="100%" height="600"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
</div>

</div>
</div>
<a id="a8dbc301d107623488824391c69803015"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8dbc301d107623488824391c69803015">&#9670;&nbsp;</a></span>pointerToDisjSets()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T_REAL &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classds_1_1_disj_sets.html">ds::DisjSets</a> clusteringop::pointerToDisjSets </td>
          <td>(</td>
          <td class="paramtype">const std::vector&lt; std::pair&lt; <a class="el" href="common_8hpp.html#a3f6c33fb604556cdc425e7aa2289d009">uintidx</a>, T_REAL &gt; &gt; &amp;&#160;</td>
          <td class="paramname"><em>aivector_pairIdxLambda</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="common_8hpp.html#a3f6c33fb604556cdc425e7aa2289d009">uintidx</a> *&#160;</td>
          <td class="paramname"><em>aiarrayiu_pi</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="common_8hpp.html#a3f6c33fb604556cdc425e7aa2289d009">uintidx</a>&#160;</td>
          <td class="paramname"><em>aiui_numClusterK</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="clustering__operator__hierarchical_8hpp_source.html#l00099">99</a> of file <a class="el" href="clustering__operator__hierarchical_8hpp_source.html">clustering_operator_hierarchical.hpp</a>.</p>

<p class="reference">References <a class="el" href="disjsets_8hpp_source.html#l00141">ds::DisjSets::getNumSet()</a>, <a class="el" href="disjsets_8hpp_source.html#l00135">ds::DisjSets::merge()</a>, <a class="el" href="disjsets_8hpp_source.html#l00152">ds::DisjSets::print()</a>, and <a class="el" href="disjsets_8hpp_source.html#l00146">ds::DisjSets::size()</a>.</p>

<p class="reference">Referenced by <a class="el" href="tgca__vkcentroid_8hpp_source.html#l00176">eac::tgca_vkcentroid()</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="namespaceclusteringop_a8dbc301d107623488824391c69803015_cgraph.svg" width="611" height="190"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>

</div>
</div>
<a id="aead202e766c9510d8e193d0f7317f66c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aead202e766c9510d8e193d0f7317f66c">&#9670;&nbsp;</a></span>randomInitialize() <span class="overload">[1/4]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T_REAL &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void clusteringop::randomInitialize </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmat_1_1_matrix_row.html">mat::MatrixRow</a>&lt; T_REAL &gt; &amp;&#160;</td>
          <td class="paramname"><em>aomatrixt_fuzzyPartition</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Initializes randomly a fuzzy partition. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">aomatrixt_fuzzyPartition</td><td>a random fuzzy partition </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="clustering__operator__fuzzy_8hpp_source.html#l00042">42</a> of file <a class="el" href="clustering__operator__fuzzy_8hpp_source.html">clustering_operator_fuzzy.hpp</a>.</p>

<p class="reference">References <a class="el" href="matrix__base_8hpp_source.html#l00081">mat::MatrixBase&lt; T_FEATURE &gt;::getNumColumns()</a>, <a class="el" href="matrix__base_8hpp_source.html#l00076">mat::MatrixBase&lt; T_FEATURE &gt;::getNumRows()</a>, <a class="el" href="random__ext_8hpp_source.html#l00063">gmt19937_eng</a>, and <a class="el" href="matrix_8hpp_source.html#l00336">mat::MatrixRow&lt; T_FEATURE &gt;::print()</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="namespaceclusteringop_aead202e766c9510d8e193d0f7317f66c_cgraph.svg" width="482" height="139"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>

</div>
</div>
<a id="a59f12278653c5ab03b44f0d03935c4da"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a59f12278653c5ab03b44f0d03935c4da">&#9670;&nbsp;</a></span>randomInitialize() <span class="overload">[2/4]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T_BITSIZE , typename T_CLUSTERIDX &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void clusteringop::randomInitialize </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmat_1_1_crisp_matrix.html">mat::CrispMatrix</a>&lt; T_BITSIZE, T_CLUSTERIDX &gt; &amp;&#160;</td>
          <td class="paramname"><em>aiocrispmatrix_partition</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="clustering__operator__crispmatrix_8hpp_source.html#l00049">49</a> of file <a class="el" href="clustering__operator__crispmatrix_8hpp_source.html">clustering_operator_crispmatrix.hpp</a>.</p>

<p class="reference">References <a class="el" href="bit__matrix_8hpp_source.html#l00139">mat::BitMatrix&lt; T_BITSIZE &gt;::getNumColumns()</a>, <a class="el" href="bit__matrix_8hpp_source.html#l00134">mat::BitMatrix&lt; T_BITSIZE &gt;::getNumRows()</a>, <a class="el" href="random__ext_8hpp_source.html#l00063">gmt19937_eng</a>, <a class="el" href="bit__matrix_8hpp_source.html#l00129">mat::BitMatrix&lt; T_BITSIZE &gt;::initialize()</a>, <a class="el" href="bit__matrix_8hpp_source.html#l00463">mat::BitMatrix&lt; T_BITSIZE &gt;::print()</a>, and <a class="el" href="bit__matrix_8hpp_source.html#l00170">mat::BitMatrix&lt; T_BITSIZE &gt;::setBit()</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="namespaceclusteringop_a59f12278653c5ab03b44f0d03935c4da_cgraph.svg" width="100%" height="480"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
</div>

</div>
</div>
<a id="aaf9c618adece3370f1da1abe8d9ce36e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aaf9c618adece3370f1da1abe8d9ce36e">&#9670;&nbsp;</a></span>randomInitialize() <span class="overload">[3/4]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T_FEATURE , typename INPUT_ITERATOR &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void clusteringop::randomInitialize </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmat_1_1_matrix_base.html">mat::MatrixBase</a>&lt; T_FEATURE &gt; &amp;&#160;</td>
          <td class="paramname"><em>aomatrixt_centroids</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const INPUT_ITERATOR&#160;</td>
          <td class="paramname"><em>aiiterator_instfirst</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const INPUT_ITERATOR&#160;</td>
          <td class="paramname"><em>aiiterator_instlast</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="clustering__operator__centroids_8hpp_source.html#l00205">205</a> of file <a class="el" href="clustering__operator__centroids_8hpp_source.html">clustering_operator_centroids.hpp</a>.</p>

<p class="reference">References <a class="el" href="interface__level1_8hpp_source.html#l00069">interfacesse::copy()</a>, <a class="el" href="instance_8hpp_source.html#l00191">data::Instance&lt; T_FEATURE &gt;::getFeatures()</a>, <a class="el" href="instance_8hpp_source.html#l00145">data::Instance&lt; T_FEATURE &gt;::getNumDimensions()</a>, <a class="el" href="matrix__base_8hpp_source.html#l00076">mat::MatrixBase&lt; T_FEATURE &gt;::getNumRows()</a>, <a class="el" href="classmat_1_1_matrix_base.html#ae3b1c4b8e9cb7e7685d7bc129f875dcd">mat::MatrixBase&lt; T_FEATURE &gt;::getRow()</a>, <a class="el" href="probability__selection_8hpp_source.html#l00215">prob::getWithoutRepeatsSet()</a>, <a class="el" href="random__ext_8hpp_source.html#l00063">gmt19937_eng</a>, and <a class="el" href="classmat_1_1_matrix_base.html#a4cdb6c084f99e4aec0373760c093ee11">mat::MatrixBase&lt; T_FEATURE &gt;::print()</a>.</p>

<p class="reference">Referenced by <a class="el" href="cbga__fkcentroid_8hpp_source.html#l00477">eac::cbga_fkcentroid()</a>, <a class="el" href="feac__vklabel_8hpp_source.html#l00081">eac::feca_vklabel()</a>, <a class="el" href="gaclustering__fkcrispmatrix_8hpp_source.html#l00069">eac::gaclustering_fkcrispmatrix()</a>, <a class="el" href="gagr__fkcentroid_8hpp_source.html#l00070">eac::gagr_fkcentroid()</a>, <a class="el" href="gas__fkcentroid_8hpp_source.html#l00070">eac::gas_fkcentroid()</a>, <a class="el" href="gcuk__vkcentroid_8hpp_source.html#l00072">eac::gcuk_vkcentroid()</a>, and <a class="el" href="kga__fkcentroid_8hpp_source.html#l00072">eac::kga_fkcentroid()</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="namespaceclusteringop_aaf9c618adece3370f1da1abe8d9ce36e_cgraph.svg" width="100%" height="556"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
</div>

</div>
</div>
<a id="a8600c8dbdfef5615335579d54629ea1b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8600c8dbdfef5615335579d54629ea1b">&#9670;&nbsp;</a></span>randomInitialize() <span class="overload">[4/4]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T_FEATURE , typename T_INSTANCES_CLUSTER_K , typename T_CLUSTERIDX , typename INPUT_ITERATOR &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void clusteringop::randomInitialize </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmat_1_1_matrix_base.html">mat::MatrixBase</a>&lt; T_FEATURE &gt; &amp;&#160;</td>
          <td class="paramname"><em>aomatrixt_centroids</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">T_CLUSTERIDX *&#160;</td>
          <td class="paramname"><em>aoarraycidx_memberShip</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::vector&lt; T_INSTANCES_CLUSTER_K &gt; &amp;&#160;</td>
          <td class="paramname"><em>aovectorit_numInstClusterK</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">INPUT_ITERATOR&#160;</td>
          <td class="paramname"><em>aiiterator_instfirst</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const INPUT_ITERATOR&#160;</td>
          <td class="paramname"><em>aiiterator_instlast</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Initialize the centroids and labels by selecting random instances. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">aomatrixt_centroids</td><td>a <a class="el" href="classmat_1_1_matrix_base.html" title="MatrixBase.">mat::MatrixBase</a> with the centroids of each cluster </td></tr>
    <tr><td class="paramname">aoarraycidx_memberShip</td><td>a T_CLUSTERIDX </td></tr>
    <tr><td class="paramname">aovectorit_numInstClusterK</td><td>a std::vector </td></tr>
    <tr><td class="paramname">aiiterator_instfirst</td><td>a input iterator of the instances </td></tr>
    <tr><td class="paramname">aiiterator_instlast</td><td>a const input iterator of the instances </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="clustering__operator__centroids_8hpp_source.html#l00298">298</a> of file <a class="el" href="clustering__operator__centroids_8hpp_source.html">clustering_operator_centroids.hpp</a>.</p>

<p class="reference">References <a class="el" href="container__out_8hpp_source.html#l00050">inout::containerprint()</a>, <a class="el" href="interface__level1_8hpp_source.html#l00069">interfacesse::copy()</a>, <a class="el" href="interface__level1_8hpp_source.html#l00046">interfacesse::copya()</a>, <a class="el" href="instance_8hpp_source.html#l00191">data::Instance&lt; T_FEATURE &gt;::getFeatures()</a>, <a class="el" href="instance_8hpp_source.html#l00145">data::Instance&lt; T_FEATURE &gt;::getNumDimensions()</a>, <a class="el" href="matrix__base_8hpp_source.html#l00076">mat::MatrixBase&lt; T_FEATURE &gt;::getNumRows()</a>, <a class="el" href="classmat_1_1_matrix_base.html#ae3b1c4b8e9cb7e7685d7bc129f875dcd">mat::MatrixBase&lt; T_FEATURE &gt;::getRow()</a>, <a class="el" href="probability__selection_8hpp_source.html#l00215">prob::getWithoutRepeatsSet()</a>, <a class="el" href="random__ext_8hpp_source.html#l00063">gmt19937_eng</a>, <a class="el" href="nearestinstance__operator_8hpp_source.html#l00035">NEARESTCENTROID_UNKNOWN</a>, and <a class="el" href="classmat_1_1_matrix_base.html#a4cdb6c084f99e4aec0373760c093ee11">mat::MatrixBase&lt; T_FEATURE &gt;::print()</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="namespaceclusteringop_a8600c8dbdfef5615335579d54629ea1b_cgraph.svg" width="100%" height="600"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
</div>

</div>
</div>
<a id="aa126347cfbbecc46d103f1a60a048dc0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa126347cfbbecc46d103f1a60a048dc0">&#9670;&nbsp;</a></span>reassignCluster() <span class="overload">[1/4]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T_REAL , typename T_FEATURE &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void clusteringop::reassignCluster </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmat_1_1_matrix_row.html">mat::MatrixRow</a>&lt; T_REAL &gt; &amp;&#160;</td>
          <td class="paramname"><em>aomatrixt_fuzzyPartition</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classmat_1_1_matrix_row.html">mat::MatrixRow</a>&lt; T_FEATURE &gt; &amp;&#160;</td>
          <td class="paramname"><em>aimatrixt_instances</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classmat_1_1_matrix_row.html">mat::MatrixRow</a>&lt; T_FEATURE &gt; &amp;&#160;</td>
          <td class="paramname"><em>aimatrixt_centroids</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">T_REAL&#160;</td>
          <td class="paramname"><em>ait_m</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structdist_1_1_dist.html">dist::Dist</a>&lt; T_REAL, T_FEATURE &gt; &amp;&#160;</td>
          <td class="paramname"><em>aifunc2p_squaredDist</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="clustering__operator__fuzzy_8hpp_source.html#l00409">409</a> of file <a class="el" href="clustering__operator__fuzzy_8hpp_source.html">clustering_operator_fuzzy.hpp</a>.</p>

<p class="reference">References <a class="el" href="matrix__base_8hpp_source.html#l00081">mat::MatrixBase&lt; T_FEATURE &gt;::getNumColumns()</a>, <a class="el" href="matrix__base_8hpp_source.html#l00076">mat::MatrixBase&lt; T_FEATURE &gt;::getNumRows()</a>, and <a class="el" href="matrix_8hpp_source.html#l00181">mat::MatrixRow&lt; T_FEATURE &gt;::getRow()</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="namespaceclusteringop_aa126347cfbbecc46d103f1a60a048dc0_cgraph.svg" width="482" height="139"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>

</div>
</div>
<a id="ad5da564b9274992e7f64e53f3c9d14b3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad5da564b9274992e7f64e53f3c9d14b3">&#9670;&nbsp;</a></span>reassignCluster() <span class="overload">[2/4]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T_FEATURE , typename T_CLUSTERIDX , typename T_DIST , typename INPUT_ITERATOR &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="common_8hpp.html#a3f6c33fb604556cdc425e7aa2289d009">uintidx</a> clusteringop::reassignCluster </td>
          <td>(</td>
          <td class="paramtype">T_CLUSTERIDX *&#160;</td>
          <td class="paramname"><em>aioarraycidx_memberShip</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classmat_1_1_matrix_row.html">mat::MatrixRow</a>&lt; T_FEATURE &gt; &amp;&#160;</td>
          <td class="paramname"><em>aimatrixt_centroids</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">INPUT_ITERATOR&#160;</td>
          <td class="paramname"><em>aiiterator_instfirst</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const INPUT_ITERATOR&#160;</td>
          <td class="paramname"><em>aiiterator_instlast</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structdist_1_1_dist.html">dist::Dist</a>&lt; T_DIST, T_FEATURE &gt; &amp;&#160;</td>
          <td class="paramname"><em>aifunc2p_dist</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Change each instance to the nearest cluster. </p>
<p>Each data instance of the container is assigned to the cluster with the nearest neighbor rule </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">aioarraycidx_memberShip</td><td>an array of indexes belonging to previously assigned or UNKNOWN_CLUSTER_IDX. Also returns how many cluster changed </td></tr>
    <tr><td class="paramname">aimatrixt_centroids</td><td>a <a class="el" href="classmat_1_1_matrix_row.html" title="Matrix store items for row.">mat::MatrixRow</a> with the centroids of each cluster </td></tr>
    <tr><td class="paramname">aiiterator_instfirst</td><td>a input iterator of the instances </td></tr>
    <tr><td class="paramname">aiiterator_instlast</td><td>a const input iterator of the instances </td></tr>
    <tr><td class="paramname">aifunc2p_dist</td><td>an object of type <a class="el" href="structdist_1_1_dist.html" title="Generic dist.">dist::Dist</a> to calculate distances </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="clustering__operator__centroids_8hpp_source.html#l00421">421</a> of file <a class="el" href="clustering__operator__centroids_8hpp_source.html">clustering_operator_centroids.hpp</a>.</p>

<p class="reference">References <a class="el" href="container__out_8hpp_source.html#l00050">inout::containerprint()</a>, <a class="el" href="instance_8hpp_source.html#l00191">data::Instance&lt; T_FEATURE &gt;::getFeatures()</a>, and <a class="el" href="nearestinstance__operator_8hpp_source.html#l00192">nearest::NN()</a>.</p>

<p class="reference">Referenced by <a class="el" href="cbga__fkcentroid_8hpp_source.html#l00477">eac::cbga_fkcentroid()</a>, <a class="el" href="cbga__fkcentroid_8hpp_source.html#l00175">eac::changeOptimalityAux()</a>, <a class="el" href="gagr__fkcentroid_8hpp_source.html#l00070">eac::gagr_fkcentroid()</a>, <a class="el" href="gga__vklabel_8hpp_source.html#l00073">eac::gga_vklabel()</a>, <a class="el" href="cbga__fkcentroid_8hpp_source.html#l00283">eac::iterateGLAAux()</a>, <a class="el" href="clustering__operator__centroids_8hpp_source.html#l01283">kmeansoperator()</a>, and <a class="el" href="tgca__vkcentroid_8hpp_source.html#l00176">eac::tgca_vkcentroid()</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="namespaceclusteringop_ad5da564b9274992e7f64e53f3c9d14b3_cgraph.svg" width="100%" height="442"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
</div>

</div>
</div>
<a id="a80f659f51e3847d5dfd184e0f253488e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a80f659f51e3847d5dfd184e0f253488e">&#9670;&nbsp;</a></span>reassignCluster() <span class="overload">[3/4]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T_FEATURE , typename T_CLUSTERIDX , typename T_INSTANCE_FREQUENCY , typename T_INSTANCES_CLUSTER_K , typename T_FEATURE_SUM , typename T_DIST , typename INPUT_ITERATOR &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">std::pair&lt; bool, T_DIST &gt; clusteringop::reassignCluster </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classds_1_1_partition_linked_stats.html">ds::PartitionLinkedStats</a>&lt; T_FEATURE, T_CLUSTERIDX, T_INSTANCE_FREQUENCY, T_INSTANCES_CLUSTER_K, T_FEATURE_SUM &gt; &amp;&#160;</td>
          <td class="paramname"><em>aoipartlinkstats_partition</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classmat_1_1_matrix_base.html">mat::MatrixBase</a>&lt; T_FEATURE &gt; &amp;&#160;</td>
          <td class="paramname"><em>aimatrixt_centroids</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">INPUT_ITERATOR&#160;</td>
          <td class="paramname"><em>aiiterator_instfirst</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const INPUT_ITERATOR&#160;</td>
          <td class="paramname"><em>aiiterator_instlast</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structdist_1_1_dist.html">dist::Dist</a>&lt; T_DIST, T_FEATURE &gt; &amp;&#160;</td>
          <td class="paramname"><em>aifunc2p_dist</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Change each instance to the nearest cluster. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">aoipartlinkstats_partition</td><td>a <a class="el" href="classds_1_1_partition_linked_stats.html" title="Partition with an array of membership.">ds::PartitionLinkedStats</a> for specifying cluster membership </td></tr>
    <tr><td class="paramname">aimatrixt_centroids</td><td>a <a class="el" href="classmat_1_1_matrix_base.html" title="MatrixBase.">mat::MatrixBase</a> with the centroids of each cluster </td></tr>
    <tr><td class="paramname">aiiterator_instfirst</td><td>a input iterator of the instances </td></tr>
    <tr><td class="paramname">aiiterator_instlast</td><td>a const input iterator of the instances </td></tr>
    <tr><td class="paramname">aifunc2p_dist</td><td>an object of type <a class="el" href="structdist_1_1_dist.html" title="Generic dist.">dist::Dist</a> to calculate distances </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="clustering__operator__centroids_8hpp_source.html#l01378">1378</a> of file <a class="el" href="clustering__operator__centroids_8hpp_source.html">clustering_operator_centroids.hpp</a>.</p>

<p class="reference">References <a class="el" href="nearestinstance__operator_8hpp_source.html#l00192">nearest::NN()</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="namespaceclusteringop_a80f659f51e3847d5dfd184e0f253488e_cgraph.svg" width="623" height="139"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>

</div>
</div>
<a id="ab70a2332e3a3d06888683651309664ed"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab70a2332e3a3d06888683651309664ed">&#9670;&nbsp;</a></span>reassignCluster() <span class="overload">[4/4]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T_FEATURE , typename T_CLUSTERIDX , typename T_INSTANCE_FREQUENCY , typename T_INSTANCES_CLUSTER_K , typename T_FEATURE_SUM , typename T_DIST , typename INPUT_ITERATOR &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void clusteringop::reassignCluster </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classds_1_1_partition_linked_stats.html">ds::PartitionLinkedStats</a>&lt; T_FEATURE, T_CLUSTERIDX, T_INSTANCE_FREQUENCY, T_INSTANCES_CLUSTER_K, T_FEATURE_SUM &gt; &amp;&#160;</td>
          <td class="paramname"><em>aoipartlinkstats_partition</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classmat_1_1_matrix_base.html">mat::MatrixBase</a>&lt; T_FEATURE &gt; &amp;&#160;</td>
          <td class="paramname"><em>aimatrixt_centroids</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">T_CLUSTERIDX *&#160;</td>
          <td class="paramname"><em>aiarraycidx_newIndex</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="common_8hpp.html#a3f6c33fb604556cdc425e7aa2289d009">uintidx</a>&#160;</td>
          <td class="paramname"><em>aiui_countNewIndex</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">INPUT_ITERATOR&#160;</td>
          <td class="paramname"><em>aiiterator_instfirst</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const INPUT_ITERATOR&#160;</td>
          <td class="paramname"><em>aiiterator_instlast</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structdist_1_1_dist.html">dist::Dist</a>&lt; T_DIST, T_FEATURE &gt; &amp;&#160;</td>
          <td class="paramname"><em>aifunc2p_dist</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Reassign cluster. </p>
<p>Reassign cluster based on a local search. Returns if the partition is valid and the distance distortion metric </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">aoipartlinkstats_partition</td><td>a <a class="el" href="classds_1_1_partition_linked_stats.html" title="Partition with an array of membership.">ds::PartitionLinkedStats</a> for specifying cluster membership </td></tr>
    <tr><td class="paramname">aimatrixt_centroids</td><td>a <a class="el" href="classmat_1_1_matrix_base.html" title="MatrixBase.">mat::MatrixBase</a> with the centroids of each cluster </td></tr>
    <tr><td class="paramname">aiarraycidx_newIndex</td><td>an array with the new indexes </td></tr>
    <tr><td class="paramname">aiui_countNewIndex</td><td>number of new indices </td></tr>
    <tr><td class="paramname">aiiterator_instfirst</td><td>a input iterator of the instances </td></tr>
    <tr><td class="paramname">aiiterator_instlast</td><td>a const input iterator of the instances </td></tr>
    <tr><td class="paramname">aifunc2p_dist</td><td>an object of type <a class="el" href="structdist_1_1_dist.html" title="Generic dist.">dist::Dist</a> to calculate distances </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="clustering__operator__centroids_8hpp_source.html#l01506">1506</a> of file <a class="el" href="clustering__operator__centroids_8hpp_source.html">clustering_operator_centroids.hpp</a>.</p>

<p class="reference">References <a class="el" href="matrix__base_8hpp_source.html#l00076">mat::MatrixBase&lt; T_FEATURE &gt;::getNumRows()</a>, and <a class="el" href="classmat_1_1_matrix_base.html#ae3b1c4b8e9cb7e7685d7bc129f875dcd">mat::MatrixBase&lt; T_FEATURE &gt;::getRow()</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="namespaceclusteringop_ab70a2332e3a3d06888683651309664ed_cgraph.svg" width="463" height="88"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>

</div>
</div>
<a id="a5a2ccb8bee604ff182b712b2ecb91020"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5a2ccb8bee604ff182b712b2ecb91020">&#9670;&nbsp;</a></span>removeEmptyPartitions()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T_FEATURE , typename T_CLUSTERIDX , typename T_INSTANCE_FREQUENCY , typename T_INSTANCES_CLUSTER_K , typename T_FEATURE_SUM , typename INPUT_ITERATOR &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void clusteringop::removeEmptyPartitions </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classds_1_1_partition_linked_stats.html">ds::PartitionLinkedStats</a>&lt; T_FEATURE, T_CLUSTERIDX, T_INSTANCE_FREQUENCY, T_INSTANCES_CLUSTER_K, T_FEATURE_SUM &gt; &amp;&#160;</td>
          <td class="paramname"><em>aoipartlinkstats_partition</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classmat_1_1_matrix_resizable_row.html">mat::MatrixResizableRow</a>&lt; T_FEATURE, T_INSTANCES_CLUSTER_K &gt; &amp;&#160;</td>
          <td class="paramname"><em>aomatrixresizerow_centroids</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const INPUT_ITERATOR&#160;</td>
          <td class="paramname"><em>aiiterator_instfirst</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const T_CLUSTERIDX&#160;</td>
          <td class="paramname"><em>aicidx_numclusterKTopMin</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Remove empty partitions. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">aoipartlinkstats_partition</td><td>a <a class="el" href="classds_1_1_partition_linked_stats.html" title="Partition with an array of membership.">ds::PartitionLinkedStats</a> to join, this also specifies membership in the cluster </td></tr>
    <tr><td class="paramname">aomatrixresizerow_centroids</td><td>a <a class="el" href="classmat_1_1_matrix_resizable_row.html" title="MatrixResizableRow .">mat::MatrixResizableRow</a> with the centroids of each cluster </td></tr>
    <tr><td class="paramname">aiiterator_instfirst</td><td>a input iterator of the instances </td></tr>
    <tr><td class="paramname">aicidx_numclusterKTopMin</td><td>a minimum number of clusters to maintain </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="clustering__operator__centroids_8hpp_source.html#l01949">1949</a> of file <a class="el" href="clustering__operator__centroids_8hpp_source.html">clustering_operator_centroids.hpp</a>.</p>

<p class="reference">References <a class="el" href="clustering__operator__centroids_8hpp_source.html#l01649">joinPartition()</a>.</p>

<p class="reference">Referenced by <a class="el" href="clustering__operator__centroids_8hpp_source.html#l02044">pnnFast()</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="namespaceclusteringop_a5a2ccb8bee604ff182b712b2ecb91020_cgraph.svg" width="100%" height="600"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
</div>

</div>
</div>
<a id="a4cd166849eef381706813bb06e2029b4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4cd166849eef381706813bb06e2029b4">&#9670;&nbsp;</a></span>setUpCuster()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T_FEATURE , typename T_CLUSTERIDX , typename T_DIST , typename INPUT_ITERATOR &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void clusteringop::setUpCuster </td>
          <td>(</td>
          <td class="paramtype">T_CLUSTERIDX *&#160;</td>
          <td class="paramname"><em>aioarraycidx_memberShip</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classmat_1_1_matrix_row.html">mat::MatrixRow</a>&lt; T_FEATURE &gt; &amp;&#160;</td>
          <td class="paramname"><em>aimatrixt_centroids</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">INPUT_ITERATOR&#160;</td>
          <td class="paramname"><em>aiiterator_instfirst</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const INPUT_ITERATOR&#160;</td>
          <td class="paramname"><em>aiiterator_instlast</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structdist_1_1_dist.html">dist::Dist</a>&lt; T_DIST, T_FEATURE &gt; &amp;&#160;</td>
          <td class="paramname"><em>aifunc2p_dist</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set up cluster index. </p>
<p>Assigns the instances of the container with an unknown cluster using the nearest neighbor rule </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">aioarraycidx_memberShip</td><td>an array of indexes only with the seed instances as the clustering center. The other instances with UNKNOWN_CLUSTER_IDX </td></tr>
    <tr><td class="paramname">aimatrixt_centroids</td><td>a <a class="el" href="classmat_1_1_matrix_row.html" title="Matrix store items for row.">mat::MatrixRow</a> with the centroids of each cluster </td></tr>
    <tr><td class="paramname">aiiterator_instfirst</td><td>a input iterator of the instances </td></tr>
    <tr><td class="paramname">aiiterator_instlast</td><td>a const input iterator of the instances </td></tr>
    <tr><td class="paramname">aifunc2p_dist</td><td>an object of type <a class="el" href="structdist_1_1_dist.html" title="Generic dist.">dist::Dist</a> to calculate distances </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="clustering__operator__centroids_8hpp_source.html#l00511">511</a> of file <a class="el" href="clustering__operator__centroids_8hpp_source.html">clustering_operator_centroids.hpp</a>.</p>

<p class="reference">References <a class="el" href="container__out_8hpp_source.html#l00050">inout::containerprint()</a>, <a class="el" href="instance_8hpp_source.html#l00191">data::Instance&lt; T_FEATURE &gt;::getFeatures()</a>, <a class="el" href="nearestinstance__operator_8hpp_source.html#l00035">NEARESTCENTROID_UNKNOWN</a>, and <a class="el" href="nearestinstance__operator_8hpp_source.html#l00192">nearest::NN()</a>.</p>

<p class="reference">Referenced by <a class="el" href="ga__clustering__operator_8hpp_source.html#l00690">gaclusteringop::crossoverCGA()</a>, and <a class="el" href="ga__clustering__operator_8hpp_source.html#l01898">gaclusteringop::MO1()</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="namespaceclusteringop_a4cd166849eef381706813bb06e2029b4_cgraph.svg" width="100%" height="442"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
</div>

</div>
</div>
<a id="aa3a86f02dae86d464cf4dfc2a7064922"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa3a86f02dae86d464cf4dfc2a7064922">&#9670;&nbsp;</a></span>slink()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T_REAL , typename INPUT_ITERATOR , typename FUNCTION_DISTANCE &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void clusteringop::slink </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="common_8hpp.html#a3f6c33fb604556cdc425e7aa2289d009">uintidx</a> *&#160;</td>
          <td class="paramname"><em>aoarrayiu_pi</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">T_REAL *&#160;</td>
          <td class="paramname"><em>aoarrayrt_lambda</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const INPUT_ITERATOR&#160;</td>
          <td class="paramname"><em>aiiterator_instfirst</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const INPUT_ITERATOR&#160;</td>
          <td class="paramname"><em>aiiterator_instlast</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">FUNCTION_DISTANCE&#160;</td>
          <td class="paramname"><em>function_distance</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="clustering__operator__hierarchical_8hpp_source.html#l00205">205</a> of file <a class="el" href="clustering__operator__hierarchical_8hpp_source.html">clustering_operator_hierarchical.hpp</a>.</p>

<p class="reference">References <a class="el" href="container__out_8hpp_source.html#l00050">inout::containerprint()</a>.</p>

<p class="reference">Referenced by <a class="el" href="tgca__vkcentroid_8hpp_source.html#l00176">eac::tgca_vkcentroid()</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="namespaceclusteringop_aa3a86f02dae86d464cf4dfc2a7064922_cgraph.svg" width="326" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>

</div>
</div>
<a id="a7fadea9ded0a7c876b8f58c3f303d316"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7fadea9ded0a7c876b8f58c3f303d316">&#9670;&nbsp;</a></span>sortLambda()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T_REAL &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">std::vector&lt;std::pair&lt;<a class="el" href="common_8hpp.html#a3f6c33fb604556cdc425e7aa2289d009">uintidx</a>,T_REAL&gt; &gt; clusteringop::sortLambda </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="common_8hpp.html#a3f6c33fb604556cdc425e7aa2289d009">uintidx</a> *&#160;</td>
          <td class="paramname"><em>aiarrayiu_pi</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const T_REAL *&#160;</td>
          <td class="paramname"><em>aiarrayrt_lambda</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="common_8hpp.html#a3f6c33fb604556cdc425e7aa2289d009">uintidx</a>&#160;</td>
          <td class="paramname"><em>aiui_numObj</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="clustering__operator__hierarchical_8hpp_source.html#l00038">38</a> of file <a class="el" href="clustering__operator__hierarchical_8hpp_source.html">clustering_operator_hierarchical.hpp</a>.</p>

<p class="reference">Referenced by <a class="el" href="tgca__vkcentroid_8hpp_source.html#l00176">eac::tgca_vkcentroid()</a>.</p>

</div>
</div>
<a id="a2fc69a2d3ca3c2fcc28c71892eee446a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2fc69a2d3ca3c2fcc28c71892eee446a">&#9670;&nbsp;</a></span>updateCentroids()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename INPUT_ITERATOR , typename T_FEATURE , typename T_FEATURE_SUM , typename T_INSTANCES_CLUSTER_K , typename T_CLUSTERIDX , typename T_DIST &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void clusteringop::updateCentroids </td>
          <td>(</td>
          <td class="paramtype">T_CLUSTERIDX &amp;&#160;</td>
          <td class="paramname"><em>aocidx_numClusterNull</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classmat_1_1_matrix_row.html">mat::MatrixRow</a>&lt; T_FEATURE &gt; &amp;&#160;</td>
          <td class="paramname"><em>aiomatrixt_centroids</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classmat_1_1_matrix_row.html">mat::MatrixRow</a>&lt; T_FEATURE_SUM &gt; &amp;&#160;</td>
          <td class="paramname"><em>aomatrixt_sumInstancesCluster</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::vector&lt; T_INSTANCES_CLUSTER_K &gt; &amp;&#160;</td>
          <td class="paramname"><em>aovectort_numInstancesInClusterK</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">INPUT_ITERATOR&#160;</td>
          <td class="paramname"><em>aiiterator_instfirst</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const INPUT_ITERATOR&#160;</td>
          <td class="paramname"><em>aiiterator_instlast</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structdist_1_1_dist.html">dist::Dist</a>&lt; T_DIST, T_FEATURE &gt; &amp;&#160;</td>
          <td class="paramname"><em>aifunc2p_dist</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="clustering__operator__centroids_8hpp_source.html#l01040">1040</a> of file <a class="el" href="clustering__operator__centroids_8hpp_source.html">clustering_operator_centroids.hpp</a>.</p>

<p class="reference">References <a class="el" href="interface__level1_8hpp_source.html#l00156">interfacesse::axpy()</a>, <a class="el" href="matrix_8hpp_source.html#l00181">mat::MatrixRow&lt; T_FEATURE &gt;::getRow()</a>, <a class="el" href="clustering__operator__centroids_8hpp_source.html#l00066">meanCentroids()</a>, and <a class="el" href="nearestinstance__operator_8hpp_source.html#l00192">nearest::NN()</a>.</p>

<p class="reference">Referenced by <a class="el" href="gagr__fkcentroid_8hpp_source.html#l00070">eac::gagr_fkcentroid()</a>, <a class="el" href="gas__fkcentroid_8hpp_source.html#l00070">eac::gas_fkcentroid()</a>, <a class="el" href="gcuk__vkcentroid_8hpp_source.html#l00072">eac::gcuk_vkcentroid()</a>, and <a class="el" href="kga__fkcentroid_8hpp_source.html#l00072">eac::kga_fkcentroid()</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="namespaceclusteringop_a2fc69a2d3ca3c2fcc28c71892eee446a_cgraph.svg" width="100%" height="556"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
</div>

</div>
</div>
<a id="a3b44507749ee74e3ef4cb30ea4c8ed6f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3b44507749ee74e3ef4cb30ea4c8ed6f">&#9670;&nbsp;</a></span>updateClusterCj()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T_FEATURE , typename T_FEATURE_SUM , typename T_INSTANCES_CLUSTER_K , typename T_CLUSTERIDX , typename T_DIST , typename INPUT_ITERATOR &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void clusteringop::updateClusterCj </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmat_1_1_matrix_row.html">mat::MatrixRow</a>&lt; T_FEATURE &gt; &amp;&#160;</td>
          <td class="paramname"><em>aiomatrixt_centroids</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classmat_1_1_matrix_row.html">mat::MatrixRow</a>&lt; T_FEATURE_SUM &gt; &amp;&#160;</td>
          <td class="paramname"><em>aiomatrixt_sumInstCluster</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::vector&lt; T_INSTANCES_CLUSTER_K &gt; &amp;&#160;</td>
          <td class="paramname"><em>aovectorit_numInstClusterK</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">T_CLUSTERIDX *&#160;</td>
          <td class="paramname"><em>aioarraycidx_memberShip</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">T_CLUSTERIDX&#160;</td>
          <td class="paramname"><em>aicidx_Cj</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::vector&lt; T_CLUSTERIDX &gt; &amp;&#160;</td>
          <td class="paramname"><em>aivectorcidx_clustersNew</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">INPUT_ITERATOR&#160;</td>
          <td class="paramname"><em>aiiterator_instfirst</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const INPUT_ITERATOR&#160;</td>
          <td class="paramname"><em>aiiterator_instlast</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structdist_1_1_dist.html">dist::Dist</a>&lt; T_DIST, T_FEATURE &gt; &amp;&#160;</td>
          <td class="paramname"><em>aifunc2p_dist</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="clustering__operator__centroids_8hpp_source.html#l01134">1134</a> of file <a class="el" href="clustering__operator__centroids_8hpp_source.html">clustering_operator_centroids.hpp</a>.</p>

<p class="reference">References <a class="el" href="interface__level1_8hpp_source.html#l00156">interfacesse::axpy()</a>, <a class="el" href="container__out_8hpp_source.html#l00050">inout::containerprint()</a>, <a class="el" href="matrix_8hpp_source.html#l00181">mat::MatrixRow&lt; T_FEATURE &gt;::getRow()</a>, <a class="el" href="matrix_8hpp_source.html#l00129">mat::MatrixRow&lt; T_FEATURE &gt;::initialize()</a>, <a class="el" href="clustering__operator__centroids_8hpp_source.html#l00066">meanCentroids()</a>, <a class="el" href="nearestinstance__operator_8hpp_source.html#l00192">nearest::NN()</a>, and <a class="el" href="matrix_8hpp_source.html#l00336">mat::MatrixRow&lt; T_FEATURE &gt;::print()</a>.</p>

<p class="reference">Referenced by <a class="el" href="ga__clustering__operator_8hpp_source.html#l02589">gaclusteringop::MO2()</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="namespaceclusteringop_a3b44507749ee74e3ef4cb30ea4c8ed6f_cgraph.svg" width="100%" height="594"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
</div>

</div>
</div>
<a id="ac88386dee7f9622d967508e4111fa2e5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac88386dee7f9622d967508e4111fa2e5">&#9670;&nbsp;</a></span>updateMedoids()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T_INSTANCEIDX , typename T_DIST , typename T_CLUSTERIDX &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">T_DIST clusteringop::updateMedoids </td>
          <td>(</td>
          <td class="paramtype">T_INSTANCEIDX *&#160;</td>
          <td class="paramname"><em>aiui_idxInstMedoids</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const T_CLUSTERIDX&#160;</td>
          <td class="paramname"><em>aicidx_numKMedoids</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const T_INSTANCEIDX&#160;</td>
          <td class="paramname"><em>aiu_nearestNeighborsP</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classmat_1_1_matrix_triang.html">mat::MatrixTriang</a>&lt; T_DIST &gt; &amp;&#160;</td>
          <td class="paramname"><em>aimattriag_dissimilarity</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Update medoids, local search heuristic <a class="el" href="citelist.html#CITEREF_Sheng:Xiaohui:GAclusteringMedoid:HKA:2004">[37]</a>. </p>
<p>For each cluster <img class="formulaInl" alt="$C_j$" src="form_5.png"/> finds the most representative object</p><ol type="1">
<li>Assign each object in <img class="formulaInl" alt="$x_i$" src="form_6.png"/> to the cluster <img class="formulaInl" alt="$C_j$" src="form_5.png"/> with the closest medoid</li>
<li>For each cluster <img class="formulaInl" alt="$C_j$" src="form_5.png"/>, repeat until the medoid does not change<ul>
<li>Choose a subset <img class="formulaInl" alt="$C_{subset}$" src="form_7.png"/> in Cj the corresponds to <img class="formulaInl" alt="$m_j$" src="form_8.png"/> and its <img class="formulaInl" alt="$p$" src="form_9.png"/> nearest neighbors of <img class="formulaInl" alt="$m_j$" src="form_8.png"/>.</li>
<li>Calulate the new medoid <p class="formulaDsp">
<img class="formulaDsp" alt="\[ m_{j}^* = { \hbox{arg min} \atop { x_i \in C_{subset}} } { \sum \atop { x_i' \in C_j} } \Vert x_i - x_i' \Vert \]" src="form_10.png"/>
</p>
</li>
<li>if <img class="formulaInl" alt="$m_j$" src="form_8.png"/> is different from <img class="formulaInl" alt="$m_{j}^*$" src="form_11.png"/> replace with the new medoid</li>
</ul>
</li>
<li>Repat step 1 and 2 until <img class="formulaInl" alt="$k$" src="form_12.png"/> medoids do not change</li>
</ol>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">aioarrayui_idxMedoids</td><td>an array with the indexes of the representative objects initially </td></tr>
    <tr><td class="paramname">aicidx_numKMedoids</td><td>cluster number </td></tr>
    <tr><td class="paramname">aiu_nearestNeighborsP</td><td>size of subset P of search neighbors </td></tr>
    <tr><td class="paramname">aimattriag_dissimilarity</td><td>a distance matrix </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="clustering__operator__medoids_8hpp_source.html#l00389">389</a> of file <a class="el" href="clustering__operator__medoids_8hpp_source.html">clustering_operator_medoids.hpp</a>.</p>

<p class="reference">References <a class="el" href="partition__linked_8hpp_source.html#l00372">ds::IteratorPartitionLinked&lt; T_CLUSTERIDX &gt;::begin()</a>, <a class="el" href="clustering__operator__medoids_8hpp_source.html#l00319">computeCostInstanceClusterJ()</a>, <a class="el" href="container__out_8hpp_source.html#l00050">inout::containerprint()</a>, <a class="el" href="partition__linked_8hpp_source.html#l00384">ds::IteratorPartitionLinked&lt; T_CLUSTERIDX &gt;::end()</a>, <a class="el" href="matrix__triangular_8hpp_source.html#l00128">mat::MatrixTriang&lt; T_FEATURE &gt;::getNumRows()</a>, <a class="el" href="partition__linked_8hpp_source.html#l00389">ds::IteratorPartitionLinked&lt; T_CLUSTERIDX &gt;::getValue()</a>, <a class="el" href="clustering__operator__medoids_8hpp_source.html#l00047">nearestRepresentative()</a>, <a class="el" href="partition__linked_8hpp_source.html#l00378">ds::IteratorPartitionLinked&lt; T_CLUSTERIDX &gt;::next()</a>, <a class="el" href="unsupervised__measures_8hpp_source.html#l04131">um::SSEMedoid()</a>, and <a class="el" href="common_8hpp_source.html#l00025">UINTIDX_NIL</a>.</p>

<p class="reference">Referenced by <a class="el" href="hka__fkmedoid_8hpp_source.html#l00065">eac::hka_fkmedoid()</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="namespaceclusteringop_ac88386dee7f9622d967508e4111fa2e5_cgraph.svg" width="100%" height="600"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
</div>

</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Apr 19 2019 08:58:34 for Library Evolutionary Algorithms for Clustering (LEAC) by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.15
</small></address>
</body>
</html>
